Reports pattern variables named identically to a field of a surrounding class. As a result of such naming, you may accidentally use the pattern variable when using the identically named field is intended.

A quick-fix is suggested to rename the variable.

Example:


  class Pointless {
    Point p = new Point();

    public void test(Object a) {
      if (a instanceof Point p) {
        System.out.print("a is a point (" + p.x + ", " + p.y + ')');
      } else {
        System.out.print("p is a point (" + p.x + ", " + p.y + ')');
      }
    }
  }

New in 2022.2