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

exotic identifiers #"super" and #"this" in for/switch cause compiler failure with AssertionError

XMLWordPrintable

    • generic
    • generic

      The following mini tests cause the Java compiler(JDK 7 b76) to throw AssertionError.
      --------------------------------------------------------
      class A1 {
          public void foo() {
              for (int #"super" = 0; #"super"<2; #"super"++) {
              }
          }
      }
      --------------------------------------------------------
      class A2 {
          public void foo () {
              int #"super" = 5;

              switch (#"super") {
                  case 5: #"super"++; break;
                  default: break;
              }
          }
      }
      --------------------------------------------------------

      The compiler throws the same error if change #"super" to #"this".

      stack trace for A1:

      An exception has occurred in the compiler (1.7.0-ea). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
      java.lang.AssertionError: store unsupported: stack(int)
              at com.sun.tools.javac.jvm.Items$Item.store(Items.java:212)
              at com.sun.tools.javac.jvm.Items$AssignItem.drop(Items.java:715)
              at com.sun.tools.javac.jvm.Gen.visitExec(Gen.java:1628)
              at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1145)
              at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:683)
              at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:718)
              at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:704)
              at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:755)
              at com.sun.tools.javac.jvm.Gen.genLoop(Gen.java:1081)
              at com.sun.tools.javac.jvm.Gen.visitForLoop(Gen.java:1050)
              at com.sun.tools.javac.tree.JCTree$JCForLoop.accept(JCTree.java:859)
              at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:683)
              at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:718)
              at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:704)
              at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:755)
              at com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1030)
              at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:768)
              at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:683)
              at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:718)
              at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:911)
              at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:884)
              at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:655)
              at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:683)
              at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2269)
              at com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:695)
              at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1393)
              at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1361)
              at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:851)
              at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:810)
              at com.sun.tools.javac.main.Main.compile(Main.java:400)
              at com.sun.tools.javac.main.Main.compile(Main.java:318)
              at com.sun.tools.javac.main.Main.compile(Main.java:309)
              at com.sun.tools.javac.Main.compile(Main.java:82)
              at com.sun.tools.javac.Main.main(Main.java:67)

            jjg Jonathan Gibbons
            dmiltsov Dmitry Miltsov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: