record RecordClass(int x) {}
public class FallThrough {
void testFallThough(Integer i, Object o) {
switch (i) {
case 1, Integer x -> {
}
}
switch (i) {
case 1, Integer x -> {
}
}
switch (i) {
case null, Integer x -> {
}
}
switch (i) {
case 1, Integer x when x > 0 -> {
}
}
switch (o) {
case String s, Integer x when x > 0 -> {
}
}
switch (o) {
case String s, RecordClass(int x) r when x > 0 -> {
}
}
switch (o) {
case String s, RecordClass(int x) -> {
}
}
switch (o) {
case null, RecordClass(int x) -> {}
case default -> {}
}
switch (o) {
case RecordClass(int x) s, null -> {}
case default -> {}
}
switch (i) {
case 1:
case Integer x:
System.out.println();
break;
}
switch (i) {
case 1:
case Integer x when x > 0:
System.out.println();
break;
}
switch (o) {
case String s:
case Integer x when x > 0:
System.out.println();
break;
}
switch (o) {
case String s:
break;
case Integer x when x > 0:
System.out.println();
break;
default:
throw new IllegalStateException("Unexpected value: " + o);
}
}
}