hg: lambda/lambda/langtools: Bug fixes:

maurizio.cimadamore at oracle.com maurizio.cimadamore at oracle.com
Wed Jul 18 10:55:08 PDT 2012


Changeset: fda29f6edfc4
Author:    mcimadamore
Date:      2012-07-18 18:54 +0100
URL:       http://hg.openjdk.java.net/lambda/lambda/langtools/rev/fda29f6edfc4

Bug fixes:
*) method reference bridge generation in the inner class translation doesn't handle varargs correctly
*) enclosing instance check on explicit inner constructor reference is bogus
Enhancements
*) 'raw' constructor reference will cause diamond inference to kick in
//example 1 - inference from arguments
interface SAM1 {
    void m(Integer s);
}

class Foo<X> {
   Foo(X x) { }
}

Foo<?> f = Foo::new; //Foo<Integer>::new inferred

//example 2 - inference from return type
interface SAM2 {
    Integer m();
}

class Bar<X> { }

Bar<String> f = Bar::new; //Bar<String>::new inferred

! src/share/classes/com/sun/tools/javac/comp/Attr.java
! src/share/classes/com/sun/tools/javac/comp/LambdaToInnerClass.java
! src/share/classes/com/sun/tools/javac/comp/Resolve.java
+ test/tools/javac/lambda/LambdaConv23.java
+ test/tools/javac/lambda/MethodReference39.java
+ test/tools/javac/lambda/MethodReference39.out
+ test/tools/javac/lambda/MethodReference40.java
+ test/tools/javac/lambda/MethodReference41.java
+ test/tools/javac/lambda/MethodReference42.java



More information about the lambda-dev mailing list