-
-
Notifications
You must be signed in to change notification settings - Fork 727
refactor(semantic): remove AstNodes program field
#12516
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
refactor(semantic): remove AstNodes program field
#12516
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
CodSpeed Instrumentation Performance ReportMerging #12516 will not alter performanceComparing Summary
Footnotes |
7055ecb to
3edb40e
Compare
Merge activity
|
`Program` is always the first node in `AstNodes`, so no need to store a duplicate `&Program` reference in `AstNodes`. I *think* this is an improvement. It does make `AstNodes::program` marginally more expensive, because it now has 2 checks: 1. Check `AstNodes::nodes` is not empty. and 2. Check that first AST node is `Program`. But both checks are branches which are never taken, so pretty cheap, and both checks share a single panic. So overall, I think it's probably better than `AstNodes` being larger than it otherwise needs to be.
3edb40e to
8912134
Compare

Programis always the first node inAstNodes, so no need to store a duplicate&Programreference inAstNodes.I think this is an improvement. It does make
AstNodes::programmarginally more expensive, because it now has 2 checks:AstNodes::nodesis not empty. andProgram.But both checks are branches which are never taken, so pretty cheap, and both checks share a single panic. So overall, I think it's probably better than
AstNodesbeing larger than it otherwise needs to be.