Fix a crash in Lint/EmptyConditionalBody
#11712
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.
The code above is tricky, because we may think
condition || other_condition
is the body of the condition, however the code is a valid case for theLint/EmptyConditionalBody
rule. It is equivalent to:However, the variable assignment is tricking
CommentsHelp#find_end_line
method into calling an#end
method ofParser::Source::Map::Variable
object.Parser::Source::Map::Variable
does not respond to it. OtherParser::Source::Map
subclasses also do not respond to#end
methods so we need to check for its existing.Parser::Source::Map::RescueBody
can be a parent node too.