Reports type cast expressions that are preceded by an instanceof check for a different type.

Although this might be intended, such a construct is most likely an error, and will result in a java.lang.ClassCastException at runtime.

Example:


  class Main {
    int whenCharSequenceCastToNumber(Object o){
      if (o instanceof CharSequence) {
        return ((Number) o).intValue();
      }
      return 0;
    }

    int earlyReturnWhenNotCharSequence(Object o){
      if (!(o instanceof CharSequence)) return 0;
      return ((Number)o).intValue();
    }
  }