-
Bug
-
Resolution: Fixed
-
P1
-
9.1
-
b88
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8142253 | emb-9 | Maurizio Cimadamore | P1 | Resolved | Fixed | team |
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.
$ 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.
- backported by
-
JDK-8142253 compiler crashes with exception on sum operation of String var and void method call result
-
- Resolved
-