Fix a false positive for Style/DoubleNegation with EnforcedStyle allowed_in_returns

このエントリーをはてなブックマークに追加

[Fix #10474] Fix a false positive for Style/DoubleNegation with EnforcedStyle: allowed_in_returns when inside returned conditional clauses
https://github.com/rubocop/rubocop/pull/10477

Style/DoubleNegation では二重否定は戻り値として使用する場合には指摘を挙げない設定ができるのだが、 以下の様なケースの場合に誤検知していたのを修正した。

def foo?
  if condition_foo?
    !!foo
  elsif condition_bar?
    do_something
    !!bar
  else
    !!baz
  end
end

def foo
  if condition_foo?
    { foo: !!foo0, bar: bar0, baz: baz0 }
  elsif condition_bar?
    do_something
    { foo: !!foo1, bar: bar1, baz: baz1 }
  else
    { foo: !!foo2, bar: bar2, baz: baz2 }
  end
end

def foo
  case condition
  when foo
    [ !!foo0, bar0, baz0 ]
  when bar
    do_something
    [ !!foo1, bar1, baz1 ]
  else
    [ !!foo2, bar2, baz2 ]
  end
end