Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make sure that recursive search of list assignments stays inside them #318

Merged
merged 2 commits into from
Mar 24, 2024

Conversation

sirbrillig
Copy link
Owner

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

@sirbrillig sirbrillig merged commit c019db0 into 2.x Mar 24, 2024
56 checks passed
@sirbrillig sirbrillig deleted the fix-destructure-bug branch March 24, 2024 21:44
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.

List assignment next to array causes unused variable warning
1 participant