fix(compiler): report unknown property binding on ng-template when standalone directive is missing from imports#69555
Open
BHUVANSH855 wants to merge 1 commit into
Conversation
Member
|
@BHUVANSH855, the tests are failing. |
d55058d to
cc53884
Compare
Contributor
Author
Done, have a look. |
Member
|
You can and should be running |
d2f8820 to
01b00ce
Compare
…andalone directive is missing from imports Aggregates filtered BoundAttribute nodes from templateAttrs alongside element inputs to ensure strictTemplates diagnostics flag unimported directives on structural tags. Closes angular#69322
01b00ce to
04be628
Compare
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
When a custom property binding matching a standalone directive's input selector is placed directly on an
<ng-template>element (e.g.,<ng-template [myDirectiveInput]="value">), the template type-checker fails to flag it as an unknown property if the directive is forgotten in the@Component.importsarray.This happens because the template type-checker's
TcbDomSchemaCheckerOpiterates exclusively overelement.inputswhen evaluating template element node types, completely missing property bindings declared on structural elements, which are parsed by the compiler AST intoelement.templateAttrs.Fixes #69322
What is the new behavior?
The
TcbDomSchemaCheckerOpexecution phase has been updated to filter and securely appendBoundAttributenodes fromelement.templateAttrsto the activebindingsarray when processingTemplateelements. This ensures that custom or unknown property bindings on<ng-template>structures correctly pass through theRegistryDomSchemaCheckervalidation layer and accurately emit diagnostic errors understrictTemplatesrules when a corresponding directive is missing from component imports.Does this PR introduce a breaking change?
Other information