This rule is defined by the following XPath expression:
//UnaryExpression[ ./UnaryExpression or ./UnaryExpressionNotPlusMinus or ./PrimaryExpression/PrimaryPrefix/Expression/UnaryExpression or ./PrimaryExpression/PrimaryPrefix/Expression/UnaryExpressionNotPlusMinus ] | //UnaryExpressionNotPlusMinus[ ./UnaryExpression or ./UnaryExpressionNotPlusMinus or ./PrimaryExpression/PrimaryPrefix/Expression/UnaryExpression or ./PrimaryExpression/PrimaryPrefix/Expression/UnaryExpressionNotPlusMinus ]
Example:
[ // These are typo bugs, or at best needlessly complex and confusing: int i = - -1; int j = + - +1; int z = ~~2; boolean b = !!true; boolean c = !!!true; // These are better: int i = 1; int j = -1; int z = 2; boolean b = true; boolean c = false; // And these just make your brain hurt: int i = ~-2; int j = -~7;