-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
DoubleNegation w/allowed_in_returns incorrectly reports offenses inside returned conditional clauses #10474
Labels
Comments
ydah
added a commit
to ydah/rubocop
that referenced
this issue
Mar 25, 2022
…ith `EnforcedStyle: allowed_in_returns` when inside returned conditional clauses
koic
added a commit
that referenced
this issue
Mar 26, 2022
…turns [Fix #10474] Fix a false positive for `Style/DoubleNegation` with `EnforcedStyle: allowed_in_returns` when inside returned conditional clauses
8 tasks
koic
added a commit
to koic/rubocop
that referenced
this issue
Apr 9, 2022
This PR fixes the following false positive for `Style/DoubleNegation` when inside returned conditional clauses with Ruby 2.7's pattern matching. The following is a reproduction case. ```ruby def foo? case condition in foo !!foo in bar !!bar else !!baz end end ``` It is expected that an offense will not be registered, but in actually an offense will be registered. ```console % bundle exec rubocop --only Style/DoubleNegation (snip) Inspecting 2 files C. Offenses: example.rb:4:5: C: [Correctable] Style/DoubleNegation: Avoid the use of double negation (!!). !!foo ^ example.rb:6:5: C: [Correctable] Style/DoubleNegation: Avoid the use of double negation (!!). !!bar ^ 2 files inspected, 2 offenses detected, 2 offenses auto-correctable ``` This is a follow-up to the same issue as rubocop#10474 and requires RuboCop AST 1.7 to fix. Therefore it bumps RuboCop AST required to use rubocop/rubocop-ast#227 to 1.7 or higher.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Assuming the default configuration for
Style/DoubleNegation
, whereEnforcedStyle: allowed_in_returns
...Expected behavior
Double negation should be valid inside hash literals or array literals which are used as return values.
(ideally, I'd also prefer a more lax
EnforcedStyle: disallow_in_conditionals
, but that needs a feature ticket...)Actual behavior and steps to reproduce the problem
with example.rb:
The following command:
rubocop --only Style/DoubleNegation --force-default-config --cache false --debug example.rb
Returns the following offenses:
RuboCop version
The text was updated successfully, but these errors were encountered: