Repository navigation
Conversation
During incremental compilations, ngtsc needs to know which metadata from a previous compilation can be reused, versus which metadata has to be recomputed as some dependency was updated. Changes to directives/components should cause the NgModule in which they are declared to be recompiled, as the NgModule's compilation is dependent on its directives/components. When a dependent source file of a directive/component is updated, however, a more subtle dependency should also cause to NgModule's source file to be invalidated. During the reconciliation of state from a previous compilation into the new program, the component's source file is invalidated because one of its dependency has changed, ergo the NgModule needs to be invalidated as well. Up until now, this implicit dependency was not imposed on the NgModule. Additionally, any change to a dependent file may influence the module scope to change, so all components within the module must be invalidated as well. This commit fixes the bug by introducing additional file dependencies, as to ensure a proper rebuild of the module scope and its components. Fixes angular#32416
JoostK
marked this pull request as ready for review
October 31, 2019 21:41
This was referenced Nov 1, 2019
Member
|
Presubmit |
Member
Author
|
merge-assistance: merge label was removed, I don't know why? It should be good to go from my perspective. |
Contributor
|
@JoostK Looks like the PR still needs a review |
alxhub
approved these changes
Nov 12, 2019
kara
pushed a commit
that referenced
this pull request
Nov 12, 2019
During incremental compilations, ngtsc needs to know which metadata from a previous compilation can be reused, versus which metadata has to be recomputed as some dependency was updated. Changes to directives/components should cause the NgModule in which they are declared to be recompiled, as the NgModule's compilation is dependent on its directives/components. When a dependent source file of a directive/component is updated, however, a more subtle dependency should also cause to NgModule's source file to be invalidated. During the reconciliation of state from a previous compilation into the new program, the component's source file is invalidated because one of its dependency has changed, ergo the NgModule needs to be invalidated as well. Up until now, this implicit dependency was not imposed on the NgModule. Additionally, any change to a dependent file may influence the module scope to change, so all components within the module must be invalidated as well. This commit fixes the bug by introducing additional file dependencies, as to ensure a proper rebuild of the module scope and its components. Fixes #32416 PR Close #33522
|
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

During incremental compilations, ngtsc needs to know which metadata
from a previous compilation can be reused, versus which metadata has to
be recomputed as some dependency was updated. Changes to
directives/components should cause the NgModule in which they are
declared to be recompiled, as the NgModule's compilation is dependent
on its directives/components.
When a dependent source file of a directive/component is updated,
however, a more subtle dependency should also cause to NgModule's source
file to be invalidated. During the reconciliation of state from a
previous compilation into the new program, the component's source file
is invalidated because one of its dependency has changed, ergo the
NgModule needs to be invalidated as well. Up until now, this implicit
dependency was not imposed on the NgModule. Additionally, any change to
a dependent file may influence the module scope to change, so all
components within the module must be invalidated as well.
This commit fixes the bug by introducing additional file dependencies,
as to ensure a proper rebuild of the module scope and its components.
Fixes #32416