Using operator pairs (e.g., =+
) that look like reversed single operators (e.g., +=
) is confusing. They compile and run
but do not produce the same result as their mirrored counterpart.
int target = -5;
int num = 3;
target =- num; // Noncompliant: target = -3. Is that the intended behavior?
target =+ num; // Noncompliant: target = 3
This rule raises an issue when =+
, =-
, =!
, =&
, =*
, +=+
, and
-=-
are used without any space between the operators and when there is at least one whitespace after.
Replace the operators with a single one if that is the intention
int target = -5;
int num = 3;
target -= num; // target = -8
Or fix the spacing to avoid confusion
int target = -5;
int num = 3;
target = -num; // target = -3