bumped into a compiler NPE when replaced lambda with an anonymous class
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu Feb 14 09:29:44 PST 2013
On 14/02/13 14:57, Maurizio Cimadamore wrote:
> This will do:
>
> class CompilerError {
>
> public static void main(String[] args) {
> SAM s = ()-> { SAM s2 = ()->{ new Object() { }; }; };
> }
>
> interface SAM {
> void m();
> }
> }
Fixed in tip
Maurizio
>
>
> From the stack trace it looks like the the translator is missing that
> the anon class occurs in a static context and therefore no 'enclosing
> this' should be added.
>
> Maurizio
>
> On 14/02/13 14:38, Dmitry Bessonov wrote:
>> class CompilerError {
>>
>> public static void main(String[] args) {
>> Bar bar = a -> a.aMethod((ClassB) () -> new ClassB() {
>> public void bMethod() {
>> }
>> });
>> }
>>
>> public static interface Bar {
>> void barMethod(ClassA a);
>> }
>>
>> public interface ClassA {
>> public void aMethod(Object t);
>> }
>>
>> public interface ClassB {
>> public void bMethod();
>> }
>>
>> }
>
More information about the lambda-dev
mailing list