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"); } } }