class Main { record Point(int x, int y) { } record Rect(Point point1, Point point2) { } void test1(final Object obj) { if (obj instanceof Point(int x, int y)) { System.out.println(x); y = 42; } } void test2(final Object obj) { if (obj instanceof Rect(Point(int x1, int y1), Point point2) && (y1 = 42) == x1 && (point2 = null) == null) { System.out.println(x1); } } void test3(final Object obj) { switch (obj) { case Rect(Point(int x1, int y1), Point point2) when (y1 = 42) == x1 -> { point2 = new Point(0, 0); } default -> {} } } void test4(final Object obj) { if (obj instanceof Point(int x, int y) && (y = 42) == x) { System.out.println(x); } } void test5(final Point[] points) { for (Point(int x, int y) : points) { System.out.println(x); y = 42; } } void test6(final Rect[] rects) { for (Rect(Point(int x1, int y1), Point point2) : rects) { x1 = 42; } } void test7(final Object obj) { switch (obj) { case Point point: point = new Point(0, 0); break; case Rect rect: System.out.println("rectangle"); break; default: System.out.println("default"); } } void test8(final Object obj) { final I i = new I() { void foo() { if (obj instanceof Point(int x, int y)) {} } }; } interface I {} }