fix(compiler): control flow nodes with root at the end projected incorrectly #58607
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.
Fixes an edge case where a control flow node that has non-projectable nodes followed by an element node at the end would cause the entire control flow node to be projected. For example if we have a projection target of
Main: <ng-content/> Slot: <ng-content select="[foo]"/>
, inserting a node of@if (true) {Hello <span foo>world</span>}
would project the entireHello world
into the[foo]
slot.In the process of working on the issue, I also found that
@let
declarations at the root of the control flow node would prevent content projection as well.