Skip to content

Make MutationVisitor visit all nodes - #470

Closed
spect88 wants to merge 1 commit into
ruby-syntax-tree:mainfrom
spect88:fix-mutation-visitor
Closed

spect88 wants to merge 1 commit into
ruby-syntax-tree:mainfrom
spect88:fix-mutation-visitor

Conversation

@spect88

@spect88 spect88 commented Jul 30, 2024

Copy link
Copy Markdown
Contributor

Hi, I tried to use MutationVisitor in my gem, but realized that it doesn't traverse the entire AST.

The most surprising thing perhaps was that anything assigned to a variable wouldn't be traversed. Looking at the documentation, this doesn't seem to be intended.

The test case demonstrates 3 important node types that would ignore
their children:
- Assign
- Assoc
- IfOp

The fact that MutationVisitor wouldn't traverse anything that's assigned
to a variable, a hash key, or inside a ternary operator was very
limiting.

@kddnewton kddnewton left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've accept this change, but note that the tree in this repository is going to be replaced soon by the one in prism, and I would suggest migrating to that.

@kddnewton

Copy link
Copy Markdown
Member

This is all going to change with the prism parser, so closing.

@kddnewton kddnewton closed this Jul 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants