<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<font size="4"><font face="monospace">I see now I answered a
slightly different question :) <br>
<br>
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. <br>
</font></font><br>
<div class="moz-cite-prefix">On 9/26/2023 8:32 AM, Tagir Valeev
wrote:<br>
</div>
<blockquote type="cite" cite="mid:CAE+3fjYcnmTi-050SczFs4vP_S2_mRMJhXKx0HpFz2aQX+A9rQ@mail.gmail.com">
<pre class="moz-quote-pre" wrap="">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 <a class="moz-txt-link-rfc2396E" href="mailto:mark.reinhold@oracle.com"><mark.reinhold@oracle.com></a> wrote:
</pre>
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">
<a class="moz-txt-link-freetext" href="https://openjdk.org/jeps/456">https://openjdk.org/jeps/456</a>
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
</pre>
</blockquote>
</blockquote>
<br>
</body>
</html>