Reports instanceof expressions where the compared type is an interface, and the compared expression has a class type that neither implements the compared interface, nor has any visible subclasses which implement the compared interface.

Although that might be intended, normally such a construct is most likely an error, where the resulting instanceof expression always evaluates to false.

Example:


  interface I1 {}

  interface I2 {}

  interface I3 extends I1 {}

  static class Sub1 implements I1 {}

  static class Sub2 extends Sub1 implements I2 {
    void test(Sub1 sub1) {
      if (sub1 instanceof I3) { // here 'I3' is incompatible interface
      }
    }
  }