Exceptions at Constructor References for inner classes
bitter_fox
bitterfoxc at gmail.com
Thu Jun 7 17:02:35 PDT 2012
Thank you,
I've just got the fix and it works well.
I've found another NPE around Constructor Reference, so I'll report it
later.
Regards,
bitter_fox
2012/6/3 maurizio cimadamore <maurizio.cimadamore at oracle.com>
> Thanks - I will dig deeper and find what the problem is - I assume this is
> with the latest compiler right (i.e. not lambda binary snapshot) ?
>
> Maurizio
>
>
> On 02-Jun-12 4:14 PM, bitter_fox wrote:
>
>> Hi,
>> I found two cases which cause of Exceptions at Constructor References for
>> inner classes:
>>
>> public class Main
>> {
>> public interface SAM0<R>
>> {
>> R invoke();
>> }
>>
>> public interface SAM1<R, A>
>> {
>> R invoke(A a);
>> }
>>
>> static
>> {
>> SAM1<Sub.Inner, Sub> sam = Sub.Inner::new; // NPE
>> }
>> }
>>
>> public class Sub
>> {
>> public class Inner {}
>>
>> static
>> {
>> Main.SAM1<Inner, Sub> sam = Inner::new; // OK
>> }
>>
>> {
>> Main.SAM0<Inner> sam0 = Inner::new; // OK
>> Main.SAM1<Inner, Sub> sam1 = Inner::new; //
>> InapplicableMethodException
>> }
>> }
>>
>> These are stack traces:
>>
>> java.lang.NullPointerException
>> at
>> com.sun.tools.javac.comp.**Resolve.hasEnclosingInstance(**Resolve.java:25
>> 17)
>> at
>> com.sun.tools.javac.comp.**Resolve.**resolveMemberReference(**
>> Resolve.java:
>> 2236)
>> at com.sun.tools.javac.comp.Attr.**visitReference(Attr.java:2631)
>> at
>> com.sun.tools.javac.tree.**JCTree$JCMemberReference.**accept(JCTree.java:
>> 1880)
>> at com.sun.tools.javac.comp.Attr.**attribTree(Attr.java:552)
>> at com.sun.tools.javac.comp.Attr.**attribExpr(Attr.java:568)
>> at com.sun.tools.javac.comp.Attr.**visitVarDef(Attr.java:1003)
>> at
>> com.sun.tools.javac.tree.**JCTree$JCVariableDecl.accept(**JCTree.java:781
>> )
>> at com.sun.tools.javac.comp.Attr.**attribTree(Attr.java:552)
>> at com.sun.tools.javac.comp.Attr.**attribStat(Attr.java:595)
>> at com.sun.tools.javac.comp.Attr.**attribStats(Attr.java:611)
>> at com.sun.tools.javac.comp.Attr.**visitBlock(Attr.java:1029)
>> at com.sun.tools.javac.tree.**JCTree$JCBlock.accept(JCTree.**
>> java:837)
>> at com.sun.tools.javac.comp.Attr.**attribTree(Attr.java:552)
>> at com.sun.tools.javac.comp.Attr.**attribStat(Attr.java:595)
>> at com.sun.tools.javac.comp.Attr.**attribClassBody(Attr.java:**
>> 3739)
>> at com.sun.tools.javac.comp.Attr.**attribClass(Attr.java:3658)
>> at com.sun.tools.javac.comp.Attr.**attribClass(Attr.java:3592)
>> at com.sun.tools.javac.comp.Attr.**attrib(Attr.java:3566)
>> at
>> com.sun.tools.javac.main.**JavaCompiler.attribute(**JavaCompiler.java:120
>> 6)
>> 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)
>>
>> com.sun.tools.javac.comp.**Resolve$**InapplicableMethodException
>> at com.sun.tools.javac.comp.**Resolve.<init>(Resolve.java:**131)
>> at com.sun.tools.javac.comp.**Resolve.instance(Resolve.java:**
>> 146)
>> at com.sun.tools.javac.comp.**Check.<init>(Check.java:100)
>> at com.sun.tools.javac.comp.**Check.instance(Check.java:91)
>> at com.sun.tools.javac.code.**Types.<init>(Types.java:104)
>> at com.sun.tools.javac.code.**Types.instance(Types.java:90)
>> at com.sun.tools.javac.jvm.**ClassReader.<init>(**
>> ClassReader.java:267)
>> at
>> com.sun.tools.javac.jvm.**ClassReader.instance(**ClassReader.java:229)
>> at
>> com.sun.tools.javac.main.**JavaCompiler.<init>(**JavaCompiler.java:341)
>> at
>> com.sun.tools.javac.main.**JavaCompiler.instance(**JavaCompiler.java:90)
>> at com.sun.tools.javac.main.Main.**compile(Main.java:428)
>> 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)
>>
>> Regards,
>> bitter_fox
>>
>>
>
More information about the lambda-dev
mailing list