Reports comparisons where left and right operand represent the identical expression. While sometimes comparing an expression with itself could be intended, in most cases, it is an oversight.

Example:


  // Probably left.getLength() == right.getLength() was intended
  boolean result = left.getLength() == left.getLength();

To ignore comparisons that may produce side effects, use the Ignore conditions with side effects option. Disabling this option may lead to false-positives, for example, when the same method returns different values on subsequent invocations.

Example:


  native int unknownMethod();
  
  ...
  
  if (unknownMethod() > unknownMethod()) {
    System.out.println("Got it");
  }

Due to possible side effects of unknownMethod() (on the example), the warning will only be triggered if the Ignore conditions with side effects option is disabled.

New in 2024.2