Make sure that recursive search of list assignments stays inside them #318
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.
When determining if a variable inside a square bracket is a shorthand list assignment, we cannot rely on the tokenizer's
nested_parenthesis
to tell us if we are inside a nested assignment (like[ $foo, [ $bar ] ] = [ 'foo', [ 'bar' ] ]
); we must instead search for the nested bracket manually. To do this, the sniff searched for the nearest opening bracket within the same statement. However, it did not then check to make sure that bracket's closing token was outside of the position of the token we are searching for. This meant that a statement like[$foo] = something([$bar])
would treat$bar
as being inside the brackets that surround$foo
and therefore that both are inside a list assignment.In this PR we alter the code that searches for the opening bracket to also check the position of the closing bracket.
Fixes #317