I see now I answered a slightly different question :)

We do support case labels for enums in pattern switches, and they participate in exhaustiveness.  But we don't currently support mixing `case pattern, constant-label` in a single case label.  This is waiting for a more comprehensive treatment of constants as patterns.

On 9/26/2023 8:32 AM, Tagir Valeev wrote:
Hello! As we are finalizing this feature, can we squeeze in a little
improvement? Namely, support enum and patterns within the same case
label, provided that the patterns do not declare any variables. Like:

enum X {A, B}

static void test(Object obj) {
   switch (obj) {
     case String _, X.B -> System.out.println("B or String");
     default -> System.out.println("other");
   }
}

public static void main(String[] args) {
   Test.test("ddd");
   Test.test(X.B);
}

Currently, such a code is not supported. Or will it be considered in
future JEPs?

With best regards,
Tagir Valeev.

On Mon, Sep 25, 2023 at 6:25 PM Mark Reinhold<[email protected]>  wrote:
https://openjdk.org/jeps/456

   Summary: Enhance the Java language with unnamed variables, which
   can be initialized but not used, and unnamed patterns, which match a
   record component without stating the component's name or type. Both are
   denoted by an underscore character, _.

- Mark

Reply via email to