Trying to run the following code with jdk 20 leads to java.lang.VerifyError:<div><br></div><div><div style="color: rgb(8, 8, 8);"><pre style="font-family:'JetBrains Mono',monospace;font-size:12.0pt;"><span style="color:#0033b3;">public class </span><span style="color:#000000;">Java20 </span>{<br>  <span style="color:#0033b3;">sealed interface </span><span style="color:#000000;">AST </span>{}<br>  <span style="color:#0033b3;">record </span><span style="color:#000000;">Lam</span>(<span style="color:#000000;">String </span>name, <span style="color:#000000;">AST </span>ast) <span style="color:#0033b3;">implements </span><span style="color:#000000;">AST </span>{}<br>  <span style="color:#0033b3;">record </span><span style="color:#000000;">Var</span>(<span style="color:#000000;">String </span>name) <span style="color:#0033b3;">implements </span><span style="color:#000000;">AST </span>{}<br>  <span style="color:#0033b3;">record </span><span style="color:#000000;">Pair</span>(<span style="color:#000000;">AST </span>a, <span style="color:#000000;">AST </span>b) {}<br><br>  <span style="color:#0033b3;">static void </span><span style="color:#00627a;">test</span>(<span style="color:#000000;">AST </span><span style="color:#871094;font-style:italic;">x</span>, <span style="color:#000000;">AST </span><span style="color:#871094;font-style:italic;">y</span>) {<br>    <span style="color:#000000;">System</span>.<span style="color:#871094;font-style:italic;">out</span>.println(<span style="color:#0033b3;">switch </span>(<span style="color:#0033b3;">new </span>Pair(<span style="color:#871094;font-style:italic;">x</span>, <span style="color:#871094;font-style:italic;">y</span>)) {<br>      <span style="color:#0033b3;">case </span><span style="color:#000000;">Pair</span>(<span style="color:#000000;">Lam</span>(<span style="color:#0033b3;">var </span><span style="color:#871094;font-style:italic;">a</span>, <span style="color:#0033b3;">var </span><span style="color:#871094;font-style:italic;">b</span>), <span style="color:#0033b3;">var </span><span style="color:#871094;font-style:italic;">c</span>) -> <span style="color:#871094;font-style:italic;">a </span>+ <span style="color:#871094;font-style:italic;">b </span>+ <span style="color:#871094;font-style:italic;">c</span>;<br>      <span style="color:#0033b3;">case </span><span style="color:#000000;">Pair</span>(<span style="color:#0033b3;">var </span><span style="color:#871094;font-style:italic;">a</span>, <span style="color:#000000;">Lam </span><span style="color:#871094;font-style:italic;">b</span>) -> <span style="color:#871094;font-style:italic;">b</span>.toString();<br>      <span style="color:#0033b3;">default </span>-> <span style="color:#067d17;">"1919"</span>;<br>    });<br>  }<br><br>  <span style="color:#0033b3;">public static void </span><span style="color:#00627a;">main</span>(<span style="color:#000000;">String</span>[] <span style="color:#871094;font-style:italic;">args</span>) {<br>    <span style="font-style:italic;">test</span>(<span style="color:#0033b3;">new </span>Var(<span style="color:#067d17;">"a"</span>), <span style="color:#0033b3;">new </span>Var(<span style="color:#067d17;">"b"</span>));<br>  }<br>}<br></pre></div></div><div>The exception is:</div><div><br></div><div><div>Error: Unable to initialize main class com.intellij.bug.Java20 in module intellij.bug.reports</div><div>Caused by: java.lang.VerifyError: Bad local variable type</div><div>Exception Details:</div><div>  Location:</div><div>    com/intellij/bug/Java20.test(Lcom/intellij/bug/Java20$AST;Lcom/intellij/bug/Java20$AST;)V @192: aload</div><div>  Reason:</div><div>    Type top (current frame, locals[10]) is not assignable to reference type</div><div>  Current Frame:</div><div>    bci: @192</div><div>    flags: { }</div><div>    locals: { 'com/intellij/bug/Java20$AST', 'com/intellij/bug/Java20$AST', 'com/intellij/bug/Java20$Pair', integer, 'com/intellij/bug/Java20$Pair', top, top, top, top, 'com/intellij/bug/Java20$AST', top, 'com/intellij/bug/Java20$AST', integer }</div><div>    stack: { 'java/io/PrintStream' }</div><div>  Bytecode:</div><div>    0000000: b200 07bb 000d 592a 2bb7 000f 59b8 0012</div><div>    0000010: 574d 033e 2c1d ba00 1800 00ab 0000 00b2</div><div>    0000020: 0000 0001 0000 0000 0000 0011 2c3a 0419</div><div>    0000030: 04b6 001c 3a0b 0336 0c19 0b15 0cba 0020</div><div>    0000040: 0000 aa00 0000 0086 ffff ffff 0000 0001</div><div>    0000050: 0000 0056 0000 001a 0000 0056 190b c000</div><div>    0000060: 213a 0519 04b6 0023 3a0d 190d 3a06 1905</div><div>    0000070: b600 263a 0d19 0d3a 0719 05b6 002a 3a0d</div><div>    0000080: 190d 3a08 1907 1908 b800 2d19 06b8 002d</div><div>    0000090: ba00 3300 00a7 003d 190b 3a09 1909 c600</div><div>    00000a0: 2219 04b6 0023 3a0d 190d c100 2199 000d</div><div>    00000b0: 190d c000 213a 0aa7 0009 0536 0ca7 ff7c</div><div>    00000c0: 190a b600 37a7 000d 043e a7ff 4a12 3aa7</div><div>    00000d0: 0003 b600 3ca7 0011 4dbb 0044 592c b600</div><div>    00000e0: 462c b700 47bf b1                      </div><div>  Exception Handler Table:</div><div>    bci [49, 52] => handler: 216</div><div>    bci [101, 104] => handler: 216</div><div>    bci [112, 115] => handler: 216</div><div>    bci [123, 126] => handler: 216</div><div>    bci [163, 166] => handler: 216</div><div>  Stackmap Table:</div><div>    full_frame(@20,{Object[#97],Object[#97],Object[#13],Integer},{Object[#61]})</div><div>    same_locals_1_stack_item_frame(@44,Object[#61])</div><div>    full_frame(@57,{Object[#97],Object[#97],Object[#13],Integer,Object[#13],Top,Top,Top,Top,Top,Top,Object[#97],Integer},{Object[#61]})</div><div>    same_locals_1_stack_item_frame(@92,Object[#61])</div><div>    same_locals_1_stack_item_frame(@152,Object[#61])</div><div>    full_frame(@186,{Object[#97],Object[#97],Object[#13],Integer,Object[#13],Top,Top,Top,Top,Object[#97],Top,Object[#97],Integer},{Object[#61]})</div><div>    same_locals_1_stack_item_frame(@192,Object[#61])</div><div>    full_frame(@200,{Object[#97],Object[#97],Object[#13],Integer,Object[#13],Top,Top,Top,Top,Top,Top,Object[#97],Integer},{Object[#61]})</div><div>    full_frame(@205,{Object[#97],Object[#97],Object[#13],Integer},{Object[#61]})</div><div>    full_frame(@210,{Object[#97],Object[#97]},{Object[#61],Object[#46]})</div><div>    same_locals_1_stack_item_frame(@216,Object[#66])</div><div>    same_frame(@230)</div></div><div><br></div><div>Env:</div><div><div>openjdk version "20.0.2" 2023-07-18</div><div>OpenJDK Runtime Environment (build 20.0.2+10)</div><div>OpenJDK 64-Bit Server VM (build 20.0.2+10, mixed mode, sharing)</div></div><div><br></div><div>Best regards,</div><div>Tesla Zhang</div><div><br></div><div><br></div><div><br></div>