public class UnnamedPatterns {
record R(int a, int b) {}
void test(Object obj) {
if (obj instanceof _) {}
if (obj instanceof R(_, _)) {}
if (obj instanceof R(int a, _)) {
System.out.println(a);
}
if (obj instanceof R(_, int b)) {
System.out.println(b);
}
if (obj instanceof R(_, _, _)) {
}
}
void testSwitch(Object obj) {
switch (obj) {
case R(_, var b) -> {
}
case R(var c, var b) -> {
}
case R(int a, _) -> {
}
default -> {
}
}
}
void testExhaustiveness(I a) {
boolean r3 = switch (a) {
case R1(_) -> true;
case R2(_) -> false;
};
}
void testNonExhaustiveness(I a) {
boolean r3 = switch (a) {
case R1(_) -> true;
};
}
sealed interface I {};
record R1(int n1) implements I {};
record R2(int n1) implements I {};
}