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

compiler crashes with exception on sum operation of String var and void method call result

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P1 P1
    • 9
    • 9.1
    • tools
    • b88
    • Verified

        Code:

        $ cat StringPlusVoid.java
        public class StringPlusVoid {

            public static void main(String args[]) {
                String s = "";
                s += m(); // compile time error
            }

            public static void m() {
            }
        }

        Actual compilation result:

        Java version:

        $ javac -version
        javac 1.9.0-ea

        Actual compilation result:

        $ javac StringPlusVoid.java
        An exception has occurred in the compiler (1.9.0-ea). Please file a bug at the Java Bug Database (http://bugreport.java.com/bugreport/) after checking the database for duplicates. Include your program and the following diagnostic in your report. Thank you.
        java.lang.AssertionError
        at com.sun.tools.javac.jvm.Items$Item.load(Items.java:206)
        at com.sun.tools.javac.jvm.Items$Item.coerce(Items.java:250)
        at com.sun.tools.javac.jvm.Items$Item.coerce(Items.java:269)
        at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:829)
        at com.sun.tools.javac.jvm.Gen.visitTypeCast(Gen.java:2179)
        at com.sun.tools.javac.tree.JCTree$JCTypeCast.accept(JCTree.java:1977)
        at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:827)
        at com.sun.tools.javac.jvm.Gen.appendStrings(Gen.java:2118)
        at com.sun.tools.javac.jvm.Gen.visitAssignop(Gen.java:1915)
        at com.sun.tools.javac.tree.JCTree$JCAssignOp.accept(JCTree.java:1871)
        at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:827)
        at com.sun.tools.javac.jvm.Gen.visitExec(Gen.java:1680)
        at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1416)
        at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:617)
        at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:652)
        at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:638)
        at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:689)
        at com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1037)
        at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:984)
        at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:617)
        at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:652)
        at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:911)
        at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:874)
        at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:836)
        at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:617)
        at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2355)
        at com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:715)
        at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1541)
        at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1505)
        at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:871)
        at com.sun.tools.javac.main.Main.compile(Main.java:254)
        at com.sun.tools.javac.main.Main.compile(Main.java:142)
        at com.sun.tools.javac.Main.compile(Main.java:56)
        at com.sun.tools.javac.Main.main(Main.java:42)

        Expected result:

        Have compiler.err.operator.cant.be.applied.1 error.

              mcimadamore Maurizio Cimadamore
              spikalev Sergei Pikalev (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: