$ javac src/Guards.java && java Guards (25.0.4.1+1-LTS) empty string short string: abc long string: abcdefgh negative -4 int 12 other $ javac src/Guards.java && java Guards (27+35) empty string short string: abc long string: abcdefgh negative -4 int 12 other $ javac broken/Dominated.java (25.0.4.1+1-LTS) broken/Dominated.java:5: error: this case label is dominated by a preceding case label case String s -> "string"; // String is a CharSequence, so this can never be reached ^ 1 error $ javac broken/Dominated.java (27+35) broken/Dominated.java:5: error: this case label is dominated by a preceding case label case String s -> "string"; // String is a CharSequence, so this can never be reached ^ 1 error $ javac broken/GuardBeforeGeneral.java (25.0.4.1+1-LTS) broken/GuardBeforeGeneral.java:5: error: this case label is dominated by a preceding case label case String s when s.isEmpty() -> "empty string"; // guarded case after the unguarded one ^ 1 error $ javac broken/GuardBeforeGeneral.java (27+35) broken/GuardBeforeGeneral.java:5: error: this case label is dominated by a preceding case label case String s when s.isEmpty() -> "empty string"; // guarded case after the unguarded one ^ 1 error