Click to see the query in the CodeQL repository
Some expressions always evaluate to the same result, no matter what their subexpressions are:
x * 0 always evaluates to 0.
x % 1 always evaluates to 0.
x & 0 always evaluates to 0.
x || true always evaluates to true.
x && false always evaluates to false. Whenever x is not constant, such an expression is often a mistake.
If the expression is supposed to evaluate to the same result every time it is executed, consider replacing the entire expression with its result.
The following method tries to determine whether x is even by checking whether x % 1 == 0.
However, x % 1 == 0 is always true when x is an integer. The correct check is x % 2 == 0.
Java Language Specification: Multiplication Operator *, Remainder Operator %, Integer Bitwise Operators &, ^, and |, Conditional-And Operator && and Conditional-Or Operator ||.