rubocop icon indicating copy to clipboard operation
rubocop copied to clipboard

[Fix #11399] Add new `Style/UnlessMinimizeNegations` cop

Open SparLaimor opened this issue 2 years ago • 1 comments

Fixes #11399. This PR adds new Style/UnlessMinimizeNegations cop.

It minimizes the number of negations in an unless using De Morgan’s laws.

# bad (all terms negated)
do_something unless !x && !y

# good (all terms positive)
do_something if x || y

# bad (2 negations, 1 positive)
do_something unless !x || !y || z

# good (2 positives, 1 negation)
do_something if x && y && !z

Before submitting the PR make sure the following are checked:

  • [x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
  • [x] Wrote good commit messages.
  • [x] Commit message starts with [Fix #issue-number] (if the related issue exists).
  • [x] Feature branch is up-to-date with master (if not - rebase it).
  • [x] Squashed related commits together.
  • [x] Added tests.
  • [x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
  • [x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

SparLaimor avatar Mar 04 '23 22:03 SparLaimor

@SparLaimor friendly ping :-)

bbatsov avatar May 29 '25 07:05 bbatsov

This pull request has been automatically marked as stale because it has not had any recent activity. It will be closed soon if no further activity occurs. Thank you for your contribution and understanding!

github-actions[bot] avatar Jul 23 '25 02:07 github-actions[bot]

This pull request has been automatically closed due to lack of activity. Feel free to ask for it to be re-opened if you ever come back to it.

github-actions[bot] avatar Sep 05 '25 02:09 github-actions[bot]