mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
An inline type-check block is required when a reference to a component class cannot be emitted from an ngtypecheck shim file, but the logic to detect this situation did not consider the configured `rootDir`. When a `rootDir` is configured the reference emitter does not allow generating an import outside this directory, which meant that a shim file wouldn't be able to reference the component class. Consequently, type-check block generation would fail with a fatal error that is unaccounted for, as gathering diagnostics should be non-fallible. This commit fixes the problem by leveraging the existing `canReferenceType` logic of the type-checking `Environment`, instead of the rudimentary check whether the class is exported as top-level symbol (`checkIfClassIsExported`). Instead, `canReferenceType` pre-flights the generation of an import using the `ReferenceEmitter` to tell exactly whether it will succeed or not; thus taking into account the `rootDirs` constraint as well. Fixes #44999 PR Close #46096 |
||
|---|---|---|
| .. | ||
| integrationtest | ||
| linker | ||
| ngcc | ||
| private | ||
| src | ||
| test | ||
| BUILD.bazel | ||
| esbuild.config.js | ||
| import_meta_url.d.ts | ||
| index.ts | ||
| package.json | ||
| tsconfig-build.json | ||
| tsconfig.json | ||