-
Couldn't load subscription status.
- Fork 49.7k
[compiler] Renames and no-op refactor for next PR #31036
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
Conversation
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
| result.add(curr); | ||
| curr = curr.parent; | ||
| } | ||
| result.add(node); |
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.
Trust that all previous property loads were added correctly. If a property load chain ever spans multiple blocks, this is technically the correct behavior
Rename for clarity:
- `CollectHoistablePropertyLoads:Tree` -> `CollectHoistablePropertyLoads:PropertyPathRegistry`
- `getPropertyLoadNode` -> `getOrCreateProperty`
- `getOrCreateRoot` -> `getOrCreateIdentifier`
- `PropertyLoadNode` -> `PropertyPathNode`
Refactor to CFG joining logic for `CollectHoistablePropertyLoads`. We now write to the same set of inferredNonNullObjects when traversing from entry and exit blocks. This is more correct, as non-nulls inferred from a forward traversal should be included when computing the backward traversal (and vice versa). This fix is needed by an edge case in #31036
Added invariant into fixed-point iteration to terminate (instead of infinite looping).
ghstack-source-id: 1e8eb2d
Pull Request resolved: #31036
Stack from ghstack (oldest at bottom):
Rename for clarity:
CollectHoistablePropertyLoads:Tree->CollectHoistablePropertyLoads:PropertyPathRegistrygetPropertyLoadNode->getOrCreatePropertygetOrCreateRoot->getOrCreateIdentifierPropertyLoadNode->PropertyPathNodeRefactor to CFG joining logic for
CollectHoistablePropertyLoads. We now write to the same set of inferredNonNullObjects when traversing from entry and exit blocks. This is more correct, as non-nulls inferred from a forward traversal should be included when computing the backward traversal (and vice versa). This fix is needed by an edge case in #31036Added invariant into fixed-point iteration to terminate (instead of infinite looping).