Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8191834

Assigning a void expression to a "var" crashes the compiler

    Details

    • Subcomponent:
    • Introduced In Build:
      b25
    • Introduced In Version:
      10
    • Resolved In Build:
      b34
    • CPU:
      x86_64
    • OS:
      generic
    • Verification:
      Verified

      Description

      FULL PRODUCT VERSION :
      java version "10-ea"
      Java(TM) SE Runtime Environment (build 10-ea+32)
      Java HotSpot(TM) 64-Bit Server VM (build 10-ea+32, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows [Version 10.0.15063]

      A DESCRIPTION OF THE PROBLEM :
      When assigning a void expression to a "var" declaration, the compiler crashes

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Compile the example file below

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The compiler emits a syntax error
      ACTUAL -
      The compiler crashes

      ERROR MESSAGES/STACK TRACES THAT OCCUR :

      Output from compiling below code
      java.lang.AssertionError
              at jdk.compiler/com.sun.tools.javac.jvm.Items$Item.load(Items.java:206)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitVarDef(Gen.java:1015)
              at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:956)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genDef(Gen.java:595)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:630)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:616)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStats(Gen.java:667)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1029)
              at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1020)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genDef(Gen.java:595)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genStat(Gen.java:630)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:901)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:864)
              at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:866)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genDef(Gen.java:595)
              at jdk.compiler/com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2182)
              at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:747)
              at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1626)
              at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1594)
              at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:964)
              at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:306)
              at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:165)
              at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:57)
              at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:43)

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      class Test {
          void m() {
              var x = n();
          }

          void n() {

          }
      }
      ---------- END SOURCE ----------

        Attachments

        1. Test.java
          0.1 kB
          Fairoz Matte

          Activity

            People

            • Assignee:
              mcimadamore Maurizio Cimadamore
              Reporter:
              webbuggrp Webbug Group
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: