fix(compiler): optimize away unnecessary restore/reset view calls#66632
Merged
amishne merged 1 commit intoangular:mainfrom Jan 20, 2026
Merged
Conversation
9373cc1 to
8597505
Compare
Contributor
|
I think it fixes #66286 instead right? |
When producing a listener, the template pipeline does the following in separate phases: 1. Generates all the variables available within its scope. 2. Adds `restoreView` and `resetView` calls if there are any referenced to local variables (e.g. `@let` or local refs). 3. Optimizes away the variables that aren't used. This means that we can end up in a situation where the references to the variables in the scope no longer exist, but we still enter and leave the view as if they're there which is unnecessary. These changes add a simple optimization pass that looks specifically for the pattern of a `restoreView` followed by a `return resetView(expr)`. Furthermore, by changing the order of some optimizations, we're able to drop the `getCurrentView` variable as well. Fixes angular#66286.
8597505 to
e390b87
Compare
Member
Author
|
Yep, fixed. |
Member
Author
JeanMeche
approved these changes
Jan 20, 2026
Contributor
|
This PR was merged into the repository. The changes were merged into the following branches:
|
|
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.
When producing a listener, the template pipeline does the following in separate phases:
restoreViewandresetViewcalls if there are any references to local variables (e.g.@letor local refs).This means that we can end up in a situation where the references to the variables in the scope no longer exist, but we still enter and leave the view as if they're there which is unnecessary.
These changes add a simple optimization pass that looks specifically for the pattern of a
restoreViewfollowed by areturn resetView(expr). Furthermore, by changing the order of some optimizations, we're able to drop thegetCurrentViewvariable as well.Fixes #66286.