Lambda testing

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Tue Sep 25 03:32:49 PDT 2012


On 24/09/12 20:24, Roman Strobl wrote:
> Hi,
>
> I have been experimenting with the recent lambda build b56 from
> http://jdk8.java.net/lambda/
>
> I noticed two potential issues.
>
> 1. An unfinished lambda expression leads to a compiler AssertionError:
>
>      public static void main(String[] args) {
>          ();
>      }
Thanks for the report

Maurizio
>
> An exception has occurred in the compiler (1.8.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
> at com.sun.tools.javac.util.Assert.error(Assert.java:126)
> at com.sun.tools.javac.tree.JCTree$Visitor.visitTree(JCTree.java:2455)
> at com.sun.tools.javac.tree.JCTree$Visitor.visitErroneous(JCTree.java:2452)
> at com.sun.tools.javac.tree.JCTree$JCErroneous.accept(JCTree.java:2269)
> at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:832)
> at com.sun.tools.javac.jvm.Gen.visitExec(Gen.java:1637)
> at
> com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1224)
> at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:679)
> at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:714)
> at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:700)
> at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:751)
> at com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1029)
> at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:837)
> at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:679)
> at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:714)
> at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:907)
> at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:880)
> at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:721)
> at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:679)
> at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2245)
> at com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:734)
> at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1478)
> at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1442)
> at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:892)
> at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:851)
> at com.sun.tools.javac.main.Main.compile(Main.java:441)
> at com.sun.tools.javac.main.Main.compile(Main.java:358)
> at com.sun.tools.javac.main.Main.compile(Main.java:347)
> at com.sun.tools.javac.main.Main.compile(Main.java:338)
> at com.sun.tools.javac.Main.compile(Main.java:76)
> at com.sun.tools.javac.Main.main(Main.java:61)
>
> 2. When I try to create an interface with a method which has an
> implementation but misses the "default" keyword, I get following error from
> the compiler:
>
> "error: interface methods cannot have body"
>
> However with the introduction of default methods in JDK 8 this doesn't seem
> to be completely true anymore, so perhaps a better message would be:
>
> "error: abstract interface methods cannot have body" or "error: interface
> methods cannot have body unless declared as default methods"
>
> I can go ahead and raise these issues, just checking if this is already
> known.
>
> Thanks,
>
> -Roman Strobl
>



More information about the lambda-dev mailing list