angular/packages/compiler-cli
Andrew Scott 75ac120493 fix(language-service): get quick info at local var location to align with TS semantics and support type narrowing
Previously, the Language Service fetched Quick Info and definitions for template variables (such as `@let` declarations) using mapping to their `initializerLocation` (the right-hand side expression). This aggressively bubbled the type, JSDoc, and definition identity of the initializer backwards onto the variable itself.

This approach had two flaws:
1. It broke type narrowing because the LS read the original un-narrowed type from the source expression rather than the type of the narrowed intermediate variable in the Type Check Block.
2. It deviated from native TypeScript semantics, where a local `let` binding (`let address = hero.address`) does not inherit the docstrings or `(property)` kind of its initializer, acting solely as a local inferred variable.

By using `localVarLocation` rather than `initializerLocation` for LetDeclaration Quick Info and Type Definitions, these intermediate variables now properly preserve type narrowing within templates and flawlessly match the standard behavior expected of TypeScript block variables. `VariableSymbol.initializerLocation` is retained solely to map the value spans of structural directive contexts (e.g., `exportAs` strings).

fixes #65491
2026-04-01 12:22:07 -07:00
..
linker feat(core): Set default Component changeDetection strategy to OnPush 2026-03-24 16:25:02 -07:00
private refactor(compiler-cli): decouple schema checker from typescript 2026-03-27 15:58:12 +01:00
src fix(language-service): get quick info at local var location to align with TS semantics and support type narrowing 2026-04-01 12:22:07 -07:00
test fix(compiler-cli): prevent recursive scope checks for invalid NgModule imports 2026-03-27 16:10:01 +01:00
BUILD.bazel refactor(compiler-cli): Export hybrid analysis from bin 2026-03-10 11:41:50 -07:00
esbuild.config.js build: use esbuild from aspect rules (#62568) 2025-07-10 13:45:15 -07:00
index.ts refactor(compiler-cli): Export hybrid_analysis symbols 2026-03-10 10:18:36 -07:00
package.json build: update to TypeScript 6 stable 2026-03-25 12:57:49 -07:00
tsconfig-test.json build: prepare for compiler-cli to be using ts_project (#61181) 2025-05-09 15:59:46 +00:00
tsconfig.json build: prepare for compiler-cli to be using ts_project (#61181) 2025-05-09 15:59:46 +00:00