class Test { public static String testReach(Object o1, Object o2) { return switch (o1) { case String _ when o2 instanceof String s: yield s; case Object _: yield "strange"; }; } record R(int x, int y) {} void test(Object obj) { if (obj instanceof R(_, var b)) { return; } if (obj instanceof R(var a, var b)) { return; } if (obj instanceof R(int a, _)) { return; } } public static void main(String[] args) { System.out.println(testReach("1", "2")); } }