Pointless bitwise expression
Reports pointless bitwise expressions.
Such expressions include applying the &
operator to the maximum value for the given type, applying the or
operator to zero, and shifting by zero. Such expressions may be the result of automated refactorings not followed through to completion and are unlikely to be originally intended.
Examples:
// Warning: operation is pointless and can be replaced with just `flags`
// 0xFFFF_FFFF is the maximum value for an integer, and both literals are treated
// as 32 bit integer literals.
int bits = flags & 0xFFFF_FFFF;
// Warning: operation is pointless and can be replaced with just `bits`
// OR-ing with 0 always outputs the other operand.
int or = bits | 0x0;
// Warning: operation is pointless, as always results in 0
int xor = or ^ or;
Inspection options
Option | Type | Default |
---|---|---|
Ignore named constants in determining pointless expressions | Checkbox | true |
Inspection Details | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for JVM 2023.3 |
Plugin: | Java, 233.SNAPSHOT |
Last modified: 13 July 2023