Reader mail bag, 2nd edition

Dan Smith daniel.smith at
Tue Dec 17 14:27:01 PST 2013

Here's a summary of feedback received on the lambda-spec-comments mailing list, and how it has been addressed.  This covers the last few months, including the Public Review period.

For the first edition, see

22 Aug 2013, Alex Buckley <alex.buckley at>, "Default methods containing local/anonymous classes"
This interaction between two different spec changes will be resolved as JSR 335 is incorporated with the rest of JLS 8.

8 Oct 2013, Jan Lahoda <jan.lahoda at>, "Enabling/disabling asserts in interface default methods"
Not a new problem -- interfaces can contain nested or anonymous classes -- but a JLS bug has been reported.

29 Oct 2013, Jon Rafkind <jon.rafkind at> "clarification of 18.2.3"
The text was cleaned up as suggested in 0.8.0 (maybe in 0.7.0, too?...).

18 Nov 2013, Jon Rafkind <jon.rafkind at>, "18.2.3 subtyping constraints"
A phrase similar to what Jon suggested appears in the 0.8.0 spec.

18 Nov 2013, Markus Keller <markus_keller at>, "Lambda expressions keeping a reference to the enclosing instance"
The lack of a commitment one way or another on whether the value of a lambda expression retains a reference to 'this' is intentional: we want implementations to be free to discard the reference, but also want an implementation that directly translates to anonymous inner classes to be valid.

3 Dec 2013, Markus Keller <markus_keller at>, "Self-reference to field from lambda expression in initializer"
I've had quite a few discussions about this, and concluded that it is best not to do anything until we flesh out a potential "recursive lambda expression" feature in the future.  (In 8, local variables initialized with lambdas have a similar inability to directly refer to themselves.)

3 Dec 2013, Markus Keller <markus_keller at>, "Can an annotation type be a functional interface?"
Reported as a javac bug:


More information about the lambda-spec-experts mailing list