The repetition of a unary operator is usually a typo. The second operator invalidates the first one in most cases:
int i = 1; int j = - - -i; // Noncompliant: equivalent to "-i" int k = ~~~i; // Noncompliant: equivalent to "~i" int m = + +i; // Noncompliant: equivalent to "i" boolean b = false; boolean c = !!!b; // Noncompliant
On the other hand, while repeating the increment and decrement operators is technically correct, it obfuscates the meaning:
int i = 1; int j = ++ ++i; // Noncompliant int k = i-- --; // Noncompliant
Using +=
or -=
improves readability:
int i = 1; i += 2; int j = i; int k = i; i -=2;
This rule raises an issue for repetitions of !
, ~
, -
, +
, prefix increments ++
and
prefix decrements --
.
Overflow handling for GWT compilation using ~~
is ignored.