Inner assignments within assignment chains #348
Merged
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.
One idea from #317:
Now though I wonder whether assignment expressions is actually the right time to do this, because another natural example
(x ?= 0)++
does not work. (Well, Civet is fine with it and leaves it as is, but JS is not fine with it, asx ?= 0
is not a valid LHS, which is what this PR is trying to fix.) I'd appreciate suggestions on where to do this transformation. Currently the AST doesn't have the ability to go to the parent node, which makes it hard to look at all assignments and then replace itself. I guess theAssignmentExpression
node could rewrite its own contents (and even become a different type of node), but I don't know how (or even where) to add the assignment operation as a "pre" operation...This might still be worth merging for now, as it does work, and is presumably useful. But also happy to rework it.