hg: lambda/lambda/langtools: Conformance fix: Add support for generic functional descriptors
maurizio.cimadamore at oracle.com
maurizio.cimadamore at oracle.com
Wed Nov 28 06:14:59 PST 2012
Changeset: c72ca936299c
Author: mcimadamore
Date: 2012-11-28 14:14 +0000
URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/c72ca936299c
Conformance fix: Add support for generic functional descriptors
A generic functional descriptor is a valid target for a method reference. The following code now compiles:
interface F {
<X> void m(X x);
}
class Test {
<Z> void g(Z z) { ... }
void test() {
F f = this::g;
f.m(1); //ok X inferred as Integer
f.m(""); //ok X inferred as String
}
}
Note: generic methods are still _not_ legal target for lambda expressions, as per EDR.
! src/share/classes/com/sun/tools/javac/code/Types.java
! src/share/classes/com/sun/tools/javac/comp/Attr.java
! src/share/classes/com/sun/tools/javac/resources/compiler.properties
- test/tools/javac/diags/examples/InvalidGenericDescInFunctionalInterface.java
+ test/tools/javac/diags/examples/InvalidGenericLambdaTarget.java
+ test/tools/javac/lambda/FunctionalInterfaceConversionTest.java
- test/tools/javac/lambda/LambdaConversionTest.java
+ test/tools/javac/lambda/MethodReference57.java
+ test/tools/javac/lambda/MethodReference58.java
+ test/tools/javac/lambda/MethodReference58.out
More information about the lambda-dev
mailing list