typescript-go icon indicating copy to clipboard operation
typescript-go copied to clipboard

Revise type-only alias logic to not depend on full type checks

Open ahejlsberg opened this issue 4 weeks ago • 0 comments

This PR extensively revises our type-only import/export alias checking to not depend on full type checks. With the PR, it is no longer necessary to fully type-check all files in a program to obtain a stable set of diagnostics for a given source file--rather, it is sufficient just to check the particular file.

The new checking scheme works as follows: Resolution of each alias records any type-only node that affects that alias (i.e. non-transitively). Checks for whether an alias should be considered type-only then walk up the alias chain (possibly resolving aliases along the way) until it finds a type-only affecting node, if one exists. Propagation of alias information is not attempted as it would require storing more information just to save a typically short and inexpensive walk.

This removes the last known difference between single-threaded and concurrent type checking.

Fixes #2114.

ahejlsberg avatar Nov 29 '25 21:11 ahejlsberg