feat(ast_tools): support #[estree(prepend_to)]#10849
Merged
graphite-app[bot] merged 1 commit intomainfrom May 7, 2025
Merged
Conversation
Member
Author
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 #10849 will create unknown performance changesComparing Summary
Benchmarks breakdown
|
71dfa51 to
83acf70
Compare
Member
Author
|
Only alters the ESTree generator, no changes to how AST is serialized. So merging without review. |
Member
Author
Merge activity
|
83acf70 to
7015811
Compare
3b4cfea to
ff07cc6
Compare
This was referenced May 7, 2025
Add an `#[estree(prepend_to = ...)]` attribute to accompany `#[estree(append_to = ...)]`. * `#[estree(prepend_to = target)]` prepends the field to *start* of the target field. * `#[estree(append_to = target)]` appends the field to *end* of the target field. This also allow both prepending *and* appending to the same field. e.g. combining `TSThisParameter`, `FormalParameter`s, and `BindingRestElement` into a single array.
ff07cc6 to
b16331e
Compare
7015811 to
d066516
Compare
graphite-app bot
pushed a commit
that referenced
this pull request
May 7, 2025
Pure refactor. Use `#[estree(prepend_to = ...)]` (introduced in #10849) to concatenate directives and statements in ESTree AST. Previously we had hacks like this: ```rs pub struct Program<'a> { #[estree(rename = "body")] pub directives: Vec<'a, Directive<'a>>, #[estree(append_to = "directives")] pub body: Vec<'a, Statement<'a>>, } ``` Instead we can do this which is easier to read, and simpler for `oxc_ast_tools` to generate code for: ```rs pub struct Program<'a> { #[estree(prepend_to = "body")] pub directives: Vec<'a, Directive<'a>>, pub body: Vec<'a, Statement<'a>>, } ```
Base automatically changed from
05-07-refactor_ast_estree_generalize_concatenating_fields_with_concat2_
to
main
May 7, 2025 13:31
graphite-app bot
pushed a commit
that referenced
this pull request
May 7, 2025
Pure refactor. Use `#[estree(prepend_to = ...)]` (introduced in #10849) to concatenate directives and statements in ESTree AST. Previously we had hacks like this: ```rs pub struct Program<'a> { #[estree(rename = "body")] pub directives: Vec<'a, Directive<'a>>, #[estree(append_to = "directives")] pub body: Vec<'a, Statement<'a>>, } ``` Instead we can do this which is easier to read, and simpler for `oxc_ast_tools` to generate code for: ```rs pub struct Program<'a> { #[estree(prepend_to = "body")] pub directives: Vec<'a, Directive<'a>>, pub body: Vec<'a, Statement<'a>>, } ```
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.

Add an
#[estree(prepend_to = ...)]attribute to accompany#[estree(append_to = ...)].#[estree(prepend_to = target)]prepends the field to start of the target field.#[estree(append_to = target)]appends the field to end of the target field.This also allow both prepending and appending to the same field. e.g. combining
TSThisParameter,FormalParameters, andBindingRestElementinto a single array.