-
Notifications
You must be signed in to change notification settings - Fork 24.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(ivy): check semantics of NgModule for consistency #27604
Conversation
You can preview 8197b6d at https://pr27604-8197b6d.ngbuilds.io/. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nits
} | ||
|
||
export function clearModulesForTest() { | ||
moduleFactories = new Map<string, NgModuleFactory<any>>(); | ||
export function registerNgModuleType(id: string, ngModuleType: NgModuleType) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could have been a separate feat
commit, since this is new behavior :)
So there's good news and bad news. 👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there. 😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request. Note to project maintainer: This is a terminal state, meaning the |
So there's good news and bad news. 👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there. 😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request. Note to project maintainer: This is a terminal state, meaning the |
2 similar comments
So there's good news and bad news. 👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there. 😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request. Note to project maintainer: This is a terminal state, meaning the |
So there's good news and bad news. 👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there. 😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request. Note to project maintainer: This is a terminal state, meaning the |
You can preview c0b8828 at https://pr27604-c0b8828.ngbuilds.io/. |
You can preview 09243f9 at https://pr27604-09243f9.ngbuilds.io/. |
You can preview 5ccfe99 at https://pr27604-5ccfe99.ngbuilds.io/. |
You can preview e4614ce at https://pr27604-e4614ce.ngbuilds.io/. |
You can preview 328d4e9 at https://pr27604-328d4e9.ngbuilds.io/. |
You can preview 33668b4 at https://pr27604-33668b4.ngbuilds.io/. |
You can preview 2ba9011 at https://pr27604-2ba9011.ngbuilds.io/. |
You can preview 5aaea5e at https://pr27604-5aaea5e.ngbuilds.io/. |
You can preview b8bf96c at https://pr27604-b8bf96c.ngbuilds.io/. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, aside from the CI failures
A Googler has manually verified that the CLAs look good. (Googler, please make sure the reason for overriding the CLA status is clearly documented in these comments.) |
You can preview 679ff56 at https://pr27604-679ff56.ngbuilds.io/. |
`NgModule` requires that `Component`s/`Directive`s/`Pipe`s are listed in declarations, and that each `Component`s/`Directive`s/`Pipe` is declared in exactly one `NgModule`. This change adds runtime checks to ensure that these sementics are true at runtime. There will need to be seperate set of checks for the AoT path of the codebase to verify that same set of semantics hold. Due to current design there does not seem to be an easy way to share the two checks because JIT deal with references where as AoT deals with AST nodes.
CLAs look good, thanks! |
You can preview 30e5f7f at https://pr27604-30e5f7f.ngbuilds.io/. |
You can preview 5ce177a at https://pr27604-5ce177a.ngbuilds.io/. |
You can preview 66e2f6f at https://pr27604-66e2f6f.ngbuilds.io/. |
`NgModule` requires that `Component`s/`Directive`s/`Pipe`s are listed in declarations, and that each `Component`s/`Directive`s/`Pipe` is declared in exactly one `NgModule`. This change adds runtime checks to ensure that these sementics are true at runtime. There will need to be seperate set of checks for the AoT path of the codebase to verify that same set of semantics hold. Due to current design there does not seem to be an easy way to share the two checks because JIT deal with references where as AoT deals with AST nodes. PR Close angular#27604
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. |
NgModule
requires thatComponent
s/Directive
s/Pipe
s are listed indeclarations, and that each
Component
s/Directive
s/Pipe
is declaredin exactly one
NgModule
. This change adds runtime checks to ensurethat these sementics are true at runtime.
There will need to be seperate set of checks for the AoT path of the
codebase to verify that same set of semantics hold. Due to current
design there does not seem to be an easy way to share the two checks
because JIT deal with references where as AoT deals with AST nodes.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
Does this PR introduce a breaking change?