AssertionError is thrown with a conditional expression in a lambda expression.
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Fri Mar 30 03:23:37 PDT 2012
Thanks for the report - we are looking into this.
Maurizio
On 30/03/12 10:14, bitter_fox wrote:
> Hi,
> The compiler throws AssertionError when we use a condtional expression in a
> lambda expression for the method returns void:
>
> public class Main
> {
> interface VoidSAM
> {
> void invoke();
> }
>
> public static void m() {}
>
> public static void Main(String[] args)
> {
> boolean cond = true;
>
> //cond ? m() : m(); // compile-time error
>
> VoidSAM sam = () -> cond ? m() : m(); // AssertionError at
> compile-time
> }
> }
>
> This is the stack trace:
>
> java.lang.AssertionError
> at com.sun.tools.javac.jvm.Items$Item.load(Items.java:206)
> at com.sun.tools.javac.jvm.Gen.visitConditional(Gen.java:1706)
> at
> com.sun.tools.javac.tree.JCTree$JCConditional.accept(JCTree.java:1119
> )
> at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:835)
> at com.sun.tools.javac.jvm.Gen.visitExec(Gen.java:1640)
> at
> com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.j
> ava:1178)
> at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:682)
> at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:717)
> at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:703)
> at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:754)
> at com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1032)
> at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:792)
> at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:682)
> at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:717)
> at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:910)
> at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:883)
> at
> com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:676)
> at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:682)
> at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2248)
> at
> com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:727)
> at
> com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1466
> )
> at
> com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1434
> )
> at
> com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:885)
>
> at
> com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:844)
> at com.sun.tools.javac.main.Main.compile(Main.java:430)
> at com.sun.tools.javac.main.Main.compile(Main.java:344)
> at com.sun.tools.javac.main.Main.compile(Main.java:335)
> at com.sun.tools.javac.Main.compile(Main.java:76)
> at com.sun.tools.javac.Main.main(Main.java:61)
>
> Regards,
> bitter_fox
>
More information about the lambda-dev
mailing list