Reports instanceof with patterns and suggests converting them to ordinary instanceof with casts.

This inspection makes it possible to move instanceof with patterns to a codebase using an earlier Java version by applying the quick-fix.

Note that the result can be not completely equivalent to the original instanceof with patterns when a complex expression before instanceof is used. In this case this expression will be reevaluated.

Example:


  if (object instanceof String txt && txt.length() == 1) {
      System.out.println(txt);
  } else {
      return;
  }
  System.out.println(txt);

After the quick-fix is applied:


  if (object instanceof String && ((String) object).length() ==1) {
      String txt = (String) object;
      System.out.println(txt);
  } else {
      return;
  }
  String txt = (String) object;
  System.out.println(txt);

New in 2023.1