Fix #4756: Comments lost when an Existence has grandchildren #4757
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.
Fixes #4756, where comments where lost before
return @foo ? 42
. This is because the “salvage comments” code in theExistence
class was usingeachChild
, which only looks at the immediate children of the expression, rather thantraverseChildren
, which drills down to all descendant children. When the expression contains@
, as in@foo
instead of justfoo
, the comments are one level deeper than where they would be on justfoo
.Previously I was covering accessors via a second check for
child.name
, but that just masked the real issue (that I wasn’t drilling down far enough) by selectively diving down just in the case of thename
property. Now that we’re searching the entire tree, there’s no need for a special check for aname
grandchild node.