Block arg '&' dose not always follow no whitespace #2414
Closed
+4
−1
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.
What no-whitespace check is needed on is only when block arg is passed as first argument and method calling is not wrapped by parentheses, because such a case cannot ditinguish between block arg '&' and binary operator '&'. e.g.
You may think this fix makes syntax more complex. Don't worry, plus '+' and minus '-' syntax have same complexity already. e.g.
Current implementation accepts only no-whitespace case, dose not accept following whitespace case. This behavior is different from Ruby, and this change is useful to write some complex expression as block args.
Note: no-whitespace following check is here.