Reports expressions and conditions that always produce the same result, like true, false, null, or 0. Such expressions can be replaced with the corresponding constant value, or may indicate there is a bug in the code.

Examples:

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

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

The inspection's behavior may be controlled by 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 the Constant Conditions & Exceptions inspection. This inspection has been split into two inspections: Constant Values and Nullability and data flow problems.