A binary expression where both operands are the same is usually incorrect.

Has Fix?

Alternate names: SelfEquality

The problem

Using the same expressions as both arguments to the following binary expressions is usually a mistake:

If the expression has side-effects, consider refactoring one of the expressions with side effects into a local. For example, prefer this:

```.java {.good} // check twice, just to be sure boolean isTrue = foo.isTrue(); if (isTrue && foo.isTrue()) { // … }

to this:

```.java {.bad}
if (foo.isTrue() && foo.isTrue()) {
  // ...


Suppress false positives by adding the suppression annotation @SuppressWarnings("IdentityBinaryExpression") to the enclosing element.