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
