aboutsummaryrefslogtreecommitdiffstats
path: root/tests/features199/java18/SwitchPatternPreview2Error.java
blob: b1652aad3b0e64ecd5c3091f3b70d8532e10fa19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
 * Inspired by examples in https://openjdk.java.net/jeps/420
 */
public class SwitchPatternPreview2Error {
  static void constantLabelMustAppearBeforePattern1(Object o) {
    switch (o) {
      case Integer i && i > 0 -> System.out.println("positive integer: " + o);
      case -1, 1 -> System.out.println("special case:" + o);
      case Integer i -> System.out.println("other integer: " + o);
      default -> System.out.println("non-integer: " + o);
    }
  }

  static void constantLabelMustAppearBeforePattern2(Object o) {
    switch (o) {
      case -1, 1 -> System.out.println("special case:" + o);
      case Integer i -> System.out.println("other integer: " + o);
      case Integer i && i > 0 -> System.out.println("positive integer: " + o);
      default -> System.out.println("non-integer: " + o);
    }
  }

  static void constantLabelMustAppearBeforePattern3(Object o) {
    switch (o) {
      case Integer i && i > 0 -> System.out.println("positive integer: " + o);
      case Integer i -> System.out.println("other integer: " + o);
      case -1, 1 -> System.out.println("special case:" + o);
      default -> System.out.println("non-integer: " + o);
    }
  }
}