package dfa;
public class SwitchWithPrimitive {
public static void main(String[] args) {
testTestPattern(2L);
System.out.println(withErasureSwitch(1));
System.out.println(exhaustiveByPrimitives(new RecordCharObj('1')));
}
public static int exhaustiveByPrimitives(RecordCharObj source) {
switch (source) {
case RecordCharObj(char source1) -> System.out.println("1");
case RecordCharObj(int source1) -> System.out.println("1");
}
return 1;
}
record RecordCharObj(Character x) {
}
public static boolean withErasureSwitch(T i) {
return switch (i) {
case long a -> false;
};
}
private static void testTestPattern(Long l2) {
long l = 0;
switch (l) {
case int i -> System.out.println("1");
case long i -> System.out.println("2");
}
switch (l) {
case 0L -> System.out.println("2");
case 1L -> System.out.println("2");
case 2L -> System.out.println("2");
case int i -> System.out.println("1");
case long i -> System.out.println("1");
}
switch (l) {
case 1L -> System.out.println("2");
case 2L -> System.out.println("2");
case long i -> System.out.println("1");
}
switch (l2) {
case 0L -> System.out.println("2");
case 1L -> System.out.println("2");
case 2L -> System.out.println("2");
case long i -> System.out.println("1");
}
switch (l2) {
case 1L -> System.out.println("2");
case 2L -> System.out.println("2");
case long i -> System.out.println("1");
}
}
}