import java.util.List;
record RecordInterface(I x, I y) {}
interface Super {}
record RecordSuper(int x) implements Super {}
sealed interface I permits C, D {}
final class C implements I {}
final class D implements I {}
class Dominance {
Integer integer;
Object object;
void test(){
switch (integer) {
case Integer i -> {}
case 1 -> {}
default -> {}
}
switch (integer) {
case Integer i when i > 0 -> {}
case 1 -> {}
default -> {}
}
switch (integer) {
case 1 -> {}
case Integer i when i > 0 -> {}
default -> {}
}
switch (integer) {
case 1 -> {}
case Integer i -> {}
}
switch (object) {
case CharSequence s -> {}
case String c -> {}
}
switch (object) {
case CharSequence s -> {}
case String c when c.length() > 0 -> {}
}
switch (object) {
case CharSequence s when true -> {}
case String c -> {}
}
switch (object) {
case CharSequence s when true -> {}
case String c when c.length() > 0 -> {}
}
switch (object) {
case RecordInterface(I z, I y) s -> {}
case RecordInterface(C z, D y) -> {}
default -> {}
}
switch (object) {
case RecordInterface(I z, D y) s when true -> {}
case RecordInterface(C z, D y) -> {}
default -> {}
}
switch (object) {
case RecordInterface(C z, D y) s when true -> {}
case RecordInterface(C z, D y) s when y.hashCode() > 0 -> {}
default -> {}
}
switch (object) {
case RecordInterface(C z, D y) s when z.hashCode() > 5 -> {}
case RecordInterface(C z, D y) s when y.hashCode() > 0 -> {}
default -> {}
}
switch (object) {
case RecordInterface(C z, D y) -> {}
case RecordInterface(I z, I y) -> {}
default -> {}
}
switch (object) {
case RecordInterface(I z, D y) -> {}
case RecordInterface(C z, C y) -> {}
default -> {}
}
switch (object) {
case Super i -> {}
case RecordSuper(int z) q when z > 0 -> {}
case default -> {}
}
switch (object) {
case List> l -> System.out.println();
case List> l
when l.size() == 2 -> System.out.println();
default -> throw new IllegalStateException("Unexpected value: " + object);
}
switch (integer) {
case Integer i -> {}
case null -> {}
}
}
}