angular-cn/packages/compiler-cli/test
Alex Rickabaugh bab90a7709 fix(compiler-cli): fix bug tracking indirect NgModule dependencies (#36211)
The compiler needs to track the dependencies of a component, including any
NgModules which happen to be present in a component's scope. If an upstream
NgModule changes, any downstream components need to have their templates
re-compiled and re-typechecked.

Previously, the compiler handled this well for the A -> B -> C case where
module A imports module B which re-exports module C. However, it fell apart
in the A -> B -> C -> D case, because previously tracking focused on changes
to components/directives in the scope, and not NgModules specifically.

This commit introduces logic to track which NgModules contributed to a given
scope, and treat them as dependencies of any components within.

This logic also contains a bug, which is intentional for now. It
purposefully does not track transitive dependencies of the NgModules which
contribute to a scope. If it did, using the current dependency system, this
would treat all components and directives (even those not exported into the
scope) as dependencies, causing a major performance bottleneck. Only those
dependencies which contributed to the module's export scope should be
considered, but the current system is incapable of making this distinction.
This will be fixed at a later date.

PR Close #36211
2020-05-05 18:40:42 -07:00
..
compliance fix(compiler): normalize line endings in ICU expansions (#36741) 2020-04-28 12:22:40 -07:00
diagnostics style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
helpers style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
metadata style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
ngtsc fix(compiler-cli): fix bug tracking indirect NgModule dependencies (#36211) 2020-05-05 18:40:42 -07:00
transformers style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
BUILD.bazel build: derive ts_library dep from jasmine_node_test boostrap label if it ends in `_es5` (#34736) 2020-01-15 14:58:07 -05:00
extract_i18n_spec.ts style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
mocks.ts style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
ngc_spec.ts fix(zone.js): add issue numbers of `@types/jasmine` to the test cases (#34625) 2020-04-08 12:10:34 -07:00
perform_compile_spec.ts style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
perform_watch_spec.ts style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
test_support.ts style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00
typescript_support_spec.ts style(compiler-cli): reformat of codebase with new clang-format version (#36520) 2020-04-08 14:51:08 -07:00