angular/packages/compiler-cli/test/ngtsc
Paul Gschwendtner e6db288ffd refactor(compiler-cli): ensure proper TS incremental program re-use w/ signal inputs (#53521)
Whenever a signal input is captured in a type check block, we will
insert an import. This will change the import graph so that the full
TypeScript program cannot be structurally re-used.

We can fix this trivially by ensuring the import graph remains stable,
by always generating an import to e.g. `@angular/core`. This fixes the
issue nicely for type-check block files. A test verifies this.

For inline code, such as TCB inline or the type constructors inline,
this fix is not applicable because we would change user-input source files,
adding new edges that would not exist for subsequent builds- causing the
program to be not re-used completely. One idea was to rely on the
existing edge that can be assumed to exist for directive code files.
This is true technically, but in practice TS does not deduplicate
imports- so our new namespace import when referencing our symbols will
invalidate the re-use. We will address this in a follow-up. There are a
couple of options, such as working with the TS team, updating the
existing edge, or inlining our helpers as well.

PR Close #53521
2023-12-13 15:44:00 -08:00
..
doc_extraction refactor(compiler): escape decorators in API JsDoc extraction (#52481) 2023-11-02 11:03:08 -07:00
BUILD.bazel build: remove Windows CI check (#52140) 2023-10-10 14:07:03 -07:00
component_indexing_spec.ts refactor(compiler-cli): update to use new file-system interfaces (#40281) 2021-01-08 09:34:44 -08:00
env.ts feat(compiler): extract docs via exports (#51828) 2023-09-20 18:34:55 +02:00
extended_template_diagnostics_spec.ts refactor(compiler-cli): remove leftover _extendedTemplateDiagnostics flag (#44920) 2022-02-01 18:24:10 +00:00
host_directives_spec.ts fix(compiler-cli): libraries compiled with v16.1+ breaking with Angular framework v16.0.x (#50714) 2023-06-14 16:27:59 +02:00
imports_spec.ts ci: migrate windows job to GHA (#51010) 2023-07-17 14:51:36 +00:00
incremental_error_spec.ts perf(compiler-cli): detect semantic changes and their effect on an incremental rebuild (#40947) 2021-03-08 08:41:19 -08:00
incremental_semantic_changes_spec.ts feat(compiler): add support for compile-time required inputs (#49468) 2023-03-20 13:10:30 +01:00
incremental_spec.ts perf(compiler-cli): optimize NgModule emit for standalone components (#49837) 2023-04-17 14:51:58 +00:00
incremental_typecheck_spec.ts refactor(compiler-cli): ensure proper TS incremental program re-use w/ signal inputs (#53521) 2023-12-13 15:44:00 -08:00
local_compilation_spec.ts fix(compiler-cli): modify getConstructorDependencies helper to work with reflection host after the previous change (#52215) 2023-10-19 09:38:30 -07:00
ls_typecheck_helpers_spec.ts fix(language-service): generate forwardRef for same file imports (#48898) 2023-02-02 13:40:17 -08:00
monorepo_spec.ts test(compiler-cli): move testing utils to separate package (#39594) 2020-11-17 11:59:56 -08:00
ngtsc_spec.ts fix(compiler): handle ambient types in input transform function (#51474) 2023-12-13 09:15:17 -08:00
scope_spec.ts feat(compiler-cli): standalone types imported into NgModule scopes (#44973) 2022-03-29 13:06:26 -07:00
sourcemap_utils.ts test: update source-map tests to account for source-map breaking change (#46888) 2022-07-19 09:40:54 -07:00
standalone_spec.ts perf(compiler): further reduce bundle size using arrow functions (#52010) 2023-10-04 07:25:54 -07:00
template_mapping_spec.ts fix(compiler-cli): correct incomplete escaping (#51557) 2023-08-29 19:48:25 +00:00
template_typecheck_spec.ts fix(compiler): handle ambient types in input transform function (#51474) 2023-12-13 09:15:17 -08:00
util.ts refactor(compiler): Add a new helper method getPrimaryAngularDecorator. (#47180) 2022-08-22 10:39:42 -07:00
xi18n_spec.ts test(compiler): fix deprecation warning (#45285) 2022-03-07 11:36:47 -08:00