Reports methods with a boolean return type that are always negated when called.

A quick-fix is provided to invert and optionally rename the method. For performance reasons, not all problematic methods may be highlighted in the editor.

Example:


  class C {
    boolean alwaysTrue() {
      return true;
    }

    void f() {
      if (!alwaysTrue()) {
        return;
      }
    }
    boolean member = !alwaysTrue();
  }

After the quick-fix is applied:


  class C {
    boolean alwaysFalse() {
      return false;
    }

    void f() {
      if (alwaysFalse()) {
        return;
      }
    }
    boolean member = alwaysFalse();
  }