SAM type conversion does not work with inner class

Thomas Jung thomas.andreas.jung at googlemail.com
Sat Nov 27 08:52:31 PST 2010


Hi,

this class does not compile. When C is defined as a static class or an
interface it does.

public class E{
	public void e(){
		C c = #{"y"};
	}
	abstract class C{
		abstract String x();
	}
}

java.lang.AssertionError
	at com.sun.tools.javac.code.Symbol.clone(Symbol.java:144)
	at com.sun.tools.javac.jvm.Gen.binaryQualifier(Gen.java:299)
	at com.sun.tools.javac.jvm.Gen.visitIdent(Gen.java:2165)
	at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:1835)
	at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:840)
	at com.sun.tools.javac.jvm.Gen.visitUnary(Gen.java:1894)
	at com.sun.tools.javac.tree.JCTree$JCUnary.accept(JCTree.java:1624)
	at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:840)
	at com.sun.tools.javac.jvm.Gen.genArgs(Gen.java:859)
	at com.sun.tools.javac.jvm.Gen.visitApply(Gen.java:1699)
	at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1344)
	at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:840)
	at com.sun.tools.javac.jvm.Gen.visitExec(Gen.java:1646)
	at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1187)
	at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:687)
	at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:722)
	at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:708)
	at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:759)
	at com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1035)
	at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:801)
	at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:687)
	at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:722)
	at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:916)
	at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:888)
	at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:684)
	at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:687)
	at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2369)
	at com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:691)
	at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1419)
	at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1387)
	at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:843)
	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:802)
	at com.sun.tools.javac.main.Main.compile(Main.java:418)
	at com.sun.tools.javac.main.Main.compile(Main.java:336)
	at com.sun.tools.javac.main.Main.compile(Main.java:327)
	at com.sun.tools.javac.Main.compile(Main.java:100)

Thomas


More information about the lambda-dev mailing list