Reports instanceof expressions where the expression that is checked has a class/interface type that neither extends/implements the class/interface type on the right-side of the instanceof expression, nor has subclasses that do.

Although it could be intended for e.g. library code, such a construct is likely erroneous, because no instance of any class declared in the project could pass this instanceof test.

Example:


  class Foo { }

  interface Bar { }
  
  class Main {
      void test(Foo f, Bar b) {
          if (f instanceof Bar) { // problem
              System.out.println("fail");
          }
          if (b instanceof Foo) { // problem
              System.out.println("fail");
          }
      }
  }