<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi Mikhail,</p>
    <p><br>
    </p>
    <p>Oops, filed:</p>
    <p><a class="moz-txt-link-freetext" href="https://bugs.openjdk.org/browse/JDK-8311825">https://bugs.openjdk.org/browse/JDK-8311825</a></p>
    <p><br>
    </p>
    <p>Thanks for the report!</p>
    <p><br>
    </p>
    <p>Jan</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 10. 07. 23 10:20, Mikhail Pyltsin
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CAOo1M=m7DbNYhqqmkpzX9_heS3x0gJYVoTTFWpFjJGFW_+hmxQ@mail.gmail.com">
      
      <div dir="ltr">  Hi!<br>
        I am investigating a new version of jep440+441 
        <div>(<a href="https://cr.openjdk.org/~gbierman/jep440%2B441/jep440+441-20230612/specs/patterns-switch-record-patterns-jls.html" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://cr.openjdk.org/~gbierman/jep440%2B441/jep440+441-20230612/specs/patterns-switch-record-patterns-jls.html</a>)</div>
        <div>After `<span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px;font-style:italic">2023-06-12:
            Misc editorial changes.</span>` I can't find any explicit
          mention that it is allowed to use qualified names for enums in
          `old` switch.</div>
        <div>But according to <a href="https://openjdk.org/jeps/441" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://openjdk.org/jeps/441</a> it
          must be allowed <br>
          ```<br>
          <pre style="font-family:"DejaVu Sans Mono","Bitstream Vera Sans Mono","Luxi Mono","Courier New",monospace;font-size:13.3333px;padding-left:2em;margin-top:1ex;margin-bottom:1ex;color:rgb(0,0,0)"><code style="font-family:"DejaVu Sans Mono","Bitstream Vera Sans Mono","Luxi Mono","Courier New",monospace">static void goodEnumSwitch2(Coin c) {
    switch (c) {
        case HEADS -> {
            System.out.println("Heads");
        }
        case Coin.TAILS -> {    // Unnecessary qualification but allowed
            System.out.println("Tails");
        }
    }
}</code></pre>
          <br>
          ```<br>
          before  `<span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px;font-style:italic">2023-06-12:
            Misc editorial changes.</span>`, It was<br>
          ```<span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px">Every</span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><code style="color:rgb(0,0,0);font-size:13.3333px;font-family:"DejaVu
            Sans Mono","Bitstream Vera Sans
            Mono","Luxi Mono","Courier
            New",monospace">case</code><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px">constant
            must be either (1) the</span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><code style="color:rgb(0,0,0);font-size:13.3333px;font-family:"DejaVu
            Sans Mono","Bitstream Vera Sans
            Mono","Luxi Mono","Courier
            New",monospace">null</code><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px">literal,
            (2) a constant expression (</span><a href="https://docs.oracle.com/javase/specs/jls/se19/html/jls-15.html#jls-15.29" target="_blank" style="color:rgb(74,103,130);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px;text-decoration-line:none" moz-do-not-send="true">15.29</a><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px">),
            or (3) the (simple or qualified)</span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px">name
            of an enum constant (</span><a href="https://docs.oracle.com/javase/specs/jls/se19/html/jls-8.html#jls-8.9.1" target="_blank" style="color:rgb(74,103,130);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px;text-decoration-line:none" moz-do-not-send="true">8.9.1</a><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px">);
            otherwise a compile-time error occurs. A single</span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><code style="color:rgb(0,0,0);font-size:13.3333px;font-family:"DejaVu
            Sans Mono","Bitstream Vera Sans
            Mono","Luxi Mono","Courier
            New",monospace">null</code><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px">case
            constant may also be paired with the</span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><code style="color:rgb(0,0,0);font-size:13.3333px;font-family:"DejaVu
            Sans Mono","Bitstream Vera Sans
            Mono","Luxi Mono","Courier
            New",monospace">default</code><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px"> </span><span style="color:rgb(0,0,0);font-family:"DejaVu
            Sans","Bitstream Vera Sans","Luxi
            Sans",Verdana,Arial,Helvetica,sans-serif;font-size:13.3333px">keyword.</span></div>
        ```,  but now there is no mention of the type of enum names.<br>
        <br>
        Could you help me, which point allows it now?<br>
        <br>
        This question arose because the next code doesn't produce
        errors:<br>
        ```<br>
            enum EN{A, B}<br>
        <br>
            public void test(EN en) {<br>
                switch (en) {<br>
                    case A -> System.out.println("a");<br>
                    case EN.A -> System.out.println("a too");<br>
                    case EN.B -> System.out.println("b");<br>
                }<br>
            }<br>
        ```<br>
        Is this expected?<br>
        <div class="gmail-adL"><br>
        </div>
      </div>
    </blockquote>
  </body>
</html>