Reports expressions and conditions that always produce the same result, like true, false, null, or zero. Such expressions could be replaced with the corresponding constant value. Very often though they signal about a bug in the code.

Examples:

  // always true
  // root cause: || is used instead of &&
  if (x > 0 || x < 10) {}

  System.out.println(str.trim());
  // always false
  // root cause: variable was dereferenced before null-check
  if (str == null) {}

The inspection behavior may be controlled by a number of annotations, such as nullability annotations, @Contract annotation, @Range annotation and so on.

Configure the inspection:

Before IntelliJ IDEA 2022.3, this inspection was part of "Constant Conditions & Exceptions" inspection. Now, it split into two inspections: "Constant Values" and "Nullability and data flow problems".