✨ New Universal.CodeAnalysis.NoDoubleNegative
sniff
#277
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.
... to detect double negatives (
!!
) and advise to use a boolean cast instead.The sniff will correctly handle a situation where even more consecutive not operators are found.
In the case, the number of operators is uneven, it will auto-fix to a single not operator.
And when a double not operator is found before an expression involving
instanceof
, the error will still be thrown, but not auto-fix as theinstanceof
operator is nested right between the!
operator and a(bool)
cast operator precedence wise, so auto-fixing without also adding parentheses would change the behaviour of the code.Includes fixer.
Includes unit tests.
Includes documentation.
Ref: https://www.php.net/manual/en/language.operators.precedence.php