-
-
Notifications
You must be signed in to change notification settings - Fork 464
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
feat(regular_expression): implement visitor pattern trait for regex AST #6055
feat(regular_expression): implement visitor pattern trait for regex AST #6055
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd the label “0-merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @camchenry and the rest of your teammates on Graphite |
4a33710
to
b401dda
Compare
CodSpeed Performance ReportMerging #6055 will not alter performanceComparing Summary
|
b401dda
to
a7dc790
Compare
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.
Thank you! 🙌🏻
Merge activity
|
…ST (#6055) - resolves #5977 - supersedes #5951 To facilitate easier traversal of the Regex AST, this PR defines a `Visit` trait with default implementations that will walk the entirety of the Regex AST. Methods in the `Visit` trait can be overridden with custom implementations to do things like analyzing only certain nodes in a regular expression, which will be useful for regex-related `oxc_linter` rules. In the future, we should consider automatically generating this code as it is very repetitive, but for now a handwritten visitor is sufficient.
a7dc790
to
7764793
Compare
## [0.30.2] - 2024-09-27 ### Features - 60c52ba ast: Allow passing span to `void_0` method (#6065) (Dunqing) - cca433f codegen: Print `vite` / `webpack` special comments (#6021) (Dunqing) - 8d026e1 regular_expression: Implement `GetSpan` for RegExp AST nodes (#6056) (camchenry) - 7764793 regular_expression: Implement visitor pattern trait for regex AST (#6055) (camchenry) - f866781 semantic: Check for type annotations on left side of `for..in` and `for..of` iterators (#6043) (DonIsaac) - 8b2e9aa semantic: Check for JSDoc types in TS type annotations (#6042) (DonIsaac) - 28da771 transformer: Do not transform `**` with bigint literals (#6023) (Boshen) ### Bug Fixes - a88504c diagnostics: Check for terminal when displaying links (#6018) (Boshen) - 418ae25 isolated-declarations: Report uninferrable types in arrays (#6084) (michaelm) - e0a8959 minifier: Compute `void number` as `undefined` (#6028) (Boshen) - 0658576 paresr: Do not report missing initializer error in ambient context (#6020) (Boshen) - b1af73d semantic: Do not create a `global` symbol for `declare global {}` (#6040) (DonIsaac) - c8682e9 semantic,codegen,transformer: Handle definite `!` operator in variable declarator (#6019) (Boshen) ### Performance - 6b7d3ed isolated-declarations: Should clone transformed AST rather than original AST (#6078) (Dunqing) - 85aff19 transformer: Introduce `Stack` (#6093) (overlookmotel) - ad4ef31 transformer: Introduce `NonEmptyStack` (#6092) (overlookmotel) ### Documentation - 3099709 allocator: Document `oxc_allocator` crate (#6037) (DonIsaac) - d60ceb4 oxc: Add README.md and crate-level docs (#6035) (DonIsaac) - efabfc8 semantic: Improve doc comments on `Reference` methods (#6076) (overlookmotel) ### Refactor - 1fc80d1 ast: Move all ts ast related impl methods to `ast_impl` (#6015) (Dunqing) - fe696f0 codegen: Simplify printing annotation comments (#6027) (Dunqing) - e60ce50 transformer: Add `SparseStack::with_capacity` method (#6094) (overlookmotel) - 1399d2c transformer: Move `SparseStack` definition into folder (#6091) (overlookmotel) - 6bd29dd transformer: Add more debug assertions (#6090) (overlookmotel) - c90b9bf transformer: Rename `SparseStack` methods (#6089) (overlookmotel) - 2b380c8 transformer: Remove unsued `self.ctx` (#6022) (Boshen) ### Testing - 93575cd semantic: Add comprehensive regression test suite (#5976) (DonIsaac) - a4cec75 transformer: Enable tests (#6032) (overlookmotel) --------- Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
To facilitate easier traversal of the Regex AST, this PR defines a
Visit
trait with default implementations that will walk the entirety of the Regex AST. Methods in theVisit
trait can be overridden with custom implementations to do things like analyzing only certain nodes in a regular expression, which will be useful for regex-relatedoxc_linter
rules.In the future, we should consider automatically generating this code as it is very repetitive, but for now a handwritten visitor is sufficient.