angular/packages/compiler-cli
JoostK 9470f56ad3 fix(compiler-cli): handle directives that refer to a namespaced class in a type parameter bound (#43511)
The template type-checker has to emit type constructors for the
directives that are used in a template, where a type constructor's
declaration has to mirror the type parameter constraints as they were
originally declared. Therefore, the compiler analyzes whether a type
parameter constraint can be recreated, e.g. by generating imports for
any type references. Some type references cannot be recreated, in which
case the compiler has to fall back to a strategy where the type
constructor is created inline in the original source file (which comes
with a performance penalty).

There used to be an issue for type references to namespaced declarations.
The compiler is unable to emit such references such that an inline
type constructor should be used as fallback, but this did not happen.
This caused the attempt to emit the type reference to fail, as the
namespaced declaration cannot be located by the reference emitters.

This commit fixes the issue by using a stricter check to determine if a
type parameter requires an inline type constructor. The TypeScript
reflection host's `isStaticallyExported` logic was expanded to work for
any declaration instead of just classes, as e.g. type declarations can
also be referenced in a type parameter constraint.

Closes #43383

PR Close #43511
2021-09-20 19:56:31 +00:00
..
integrationtest refactor(compiler): remove dependency on fs-extra (#41445) 2021-04-05 15:04:50 -07:00
linker refactor(compiler-cli): ensure compatibility with noImplicitOverride (#42512) 2021-07-12 13:11:14 -07:00
ngcc fix(compiler-cli): handle directives that refer to a namespaced class in a type parameter bound (#43511) 2021-09-20 19:56:31 +00:00
src fix(compiler-cli): handle directives that refer to a namespaced class in a type parameter bound (#43511) 2021-09-20 19:56:31 +00:00
test fix(compiler): include leading whitespace in source-spans of i18n messages (#43132) 2021-09-16 18:15:51 +00:00
BUILD.bazel build: use api-golden tool from dev-infra for testing public API (#42688) 2021-06-30 11:43:48 -07:00
index.ts perf(compiler-cli): refactor the performance tracing infrastructure (#41125) 2021-03-24 13:42:24 -07:00
package.json feat(core): support TypeScript 4.3 (#42022) 2021-06-04 11:17:09 -07:00
tsconfig-build.json build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
tsconfig.json perf(ivy): ngcc - only find dependencies when targeting a single entry-point (#30525) 2019-07-09 09:40:46 -07:00