JSR 335 Lambda Specification, 0.8.0
daniel.smith at oracle.com
Tue Dec 17 09:21:01 PST 2013
An updated specification can be found here:
One-page HTML: http://cr.openjdk.java.net/~dlsmith/jsr335-0.8.0.html
Downloadable zip: http://cr.openjdk.java.net/~dlsmith/jsr335-0.8.0.zip
The list of bugs identified since 0.7.0 is here; bugs that were resolved on or before December 16 are included in version 0.8.0.
Full change log, from the document:
> Poly Expressions: Prohibited arrays in intersection casts.
> Typing and Evaluation: Made lambdas incompatible with generic targeted function types. Performed capture before the method reference method search. Avoided diamond inference for inner classes of raw types. Defined method references requiring inference as inexact. Specified unchecked warnings for method reference assignment. Added lambdas and method references to 15.7.5.
> Overload Resolution: Clarified the invocation type of the getClass method. Clarified that unchecked invocation does not cause target parameter types to be erased.
> Type Inference: No longer require a bound set as input to reduction. Allowed narrowing of primitive constants in lambda bodies. Clarified when unchecked conversion occurs during inference. Cleaned up reduction of containment/equality constraints involving wildcards. Fixed minor notational problems.
> Default Methods: Added the runtime behavior of default method invocation (188.8.131.52). Defined concrete methods. Updated the definition of hiding (by static methods), consistent with previous changes to overriding. Clarified that TypeName.super cannot be used to refer to a type variable. Clarified that the type to search, for InterfaceName.super, is provided by the implements clause.
> Java Virtual Machine: Allowed invokeStatic and invokeSpecial MethodHandles to use InterfaceMethodrefs. Prohibited static and non-public methods of class Object from being the resolution of an InterfaceMethodref.
More information about the lambda-spec-observers