Public Review bug fixes
Dan Smith
daniel.smith at oracle.com
Mon Dec 16 18:47:10 PST 2013
The Public Review period for JSR 335 completed Dec 4. This included the 0.7.0 version of the language/VM spec document.
I've had a lot of great feedback from the Expert Group, internally at Oracle, and from other contributors. I've also been working on integrating the documents with the rest of JLS 8 and JVMS 8. During this period I've addressed a number of bugs in the specification. As we approach the final draft, I've been tracking these changes more carefully. A list of all spec bugs (defined as semantically-meaningful changes) appears below.
See bugs.openjdk.java.net to find the full bug report and discussion (e.g., updated specification text). The complete list can be found here:
https://bugs.openjdk.java.net/issues/?jql=labels%3Dlambda-pr
Some, marked with an asterisk (*), have not yet been resolved. They will be addressed this week prior to the final draft. I believe all known issues have been filed.
Watch for two related emails shortly:
- The 0.8.0 specification and diff
- A summary of feedback from lambda-spec-comments
Lambdas & method references
JDK-8030352 Lambda Spec: Mention lambdas and method refs in 15.7.5
JDK-8029640 Lambda Spec: Require unchecked warnings for parameter/return types of method ref
JDK-8029632 Lambda Spec: Raw inner class constructor ref should not attempt diamond inference
JDK-8029573 Lambda Spec: Target function type of a lambda expression cannot be generic
JDK-8029571 Lambda Spec: Array types cannot be used for static method references
JDK-8029568 Lambda Spec: Clarify the return type of a reference to method getClass
JDK-8029306 Lambda Spec: Capture for method references like Optional<?>::get
JDK-8027798 Lambda Spec: RawType::new is an inexact method reference
JDK-8027738 Lambda Spec: Disallow arrays in intersection cast targets
JDK-8030355* Lambda Spec: Grammar for lambda expressions is ambiguous
JDK-8030356* Lambda Spec: Prohibit RawClass::<Foo>new
JDK-8030351* Lambda Spec: Add method references to 13.1
JDK-8029660* Lambda Spec: Define lambda class behavior for generics/bridges
JDK-8028690* Lambda Spec: Clarify how parameter/return types are derived for MethodHandle::invoke
JDK-8030358* Lambda Spec: Most-specific for an exact method reference targeting different parameter types
Type inference
JDK-8030148 Lambda Spec: Reduction for Foo<?> = Foo<? extends alpha>
JDK-8030018 Lambda Spec: Inference should generate an eq bound from an unboxing constraint
JDK-8030012 Lambda Spec: Allow assignment conversion of lambda results during inference
JDK-8028805 Lambda Spec: Clarify where unchecked conversions occur during inference
JDK-8027859 Lambda Spec: S <= T should lead to = constraints, not <: constraints
JDK-8030478* Lambda Spec: Perform appropriate substitutions on constraint target types in 18.5.2
JDK-8030349* Lambda Spec: Move 'lub' from 15.12.2.7
JDK-8029866* Lambda Spec: Despite unchecked invocation, parameter types should be inferred
JDK-8029704* Lambda Spec: Fix subtype inference for a non-parameterized inner class of a generic type
JDK-8028813* Lambda Spec: Take multiple upper bounds into account in incorporation
JDK-8028800* Lambda Spec: Support capture when a nested invocation returns an inference variable
Default methods (JLS)
JDK-8030220 Lambda Spec: Define runtime behavior for default methods in 15.12.4.4
JDK-8030137 Lambda Spec: Error if inherited static method hides an interface method
JDK-8030015 Lambda Spec: Error for TypeVariable.super.m()
JDK-8030150* Lambda Spec: Error for static interface method invocation via an expression
Default methods (JVMS)
JDK-8030281 Lambda Spec: Allow static/special MethodHandles to reference InterfaceMethodrefs
JDK-8027740 Lambda Spec: JVMS 5.4.3.3 "maximally-specific superinterface method" should be defined for interfaces
JDK-8027581 Lambda Spec: method accessibility checking on invokeinterface of j.l.Object methods
More information about the lambda-spec-experts
mailing list