hg: lambda/lambda/langtools: Handle non-static method references from static context. More specifically, if f is an instance method of Z whose signature is A, B->C, then #obj.f is of type A, B->C and #Z.f is of type Z, A, B->C.

Kevin Bourrillion kevinb at google.com
Wed Aug 4 07:36:19 PDT 2010


Hello,

Does this mean that we could replace

  Predicate<Employee> p = { e -> e.isPartTime() };

with

  Predicate<Employee> p = #Employee.isPartTime;

?  If so, very cool.




On Wed, Aug 4, 2010 at 7:13 AM, <maurizio.cimadamore at oracle.com> wrote:

> Changeset: 443eb1d3b96c
> Author:    mcimadamore
> Date:      2010-08-04 15:10 +0100
> URL:
> http://hg.openjdk.java.net/lambda/lambda/langtools/rev/443eb1d3b96c
>
> Handle non-static method references from static context. More specifically,
> if f is an instance method of Z whose signature is A,B->C, then #obj.f is of
> type A,B->C and #Z.f is of type Z,A,B->C.
>
> ! src/share/classes/com/sun/tools/javac/comp/Attr.java
> ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java
> ! test/tools/javac/lambda/MethodReference05.java
> - test/tools/javac/lambda/MethodReference05.out
> + test/tools/javac/lambda/MethodReference07.java
> + test/tools/javac/lambda/MethodReference08.java
> + test/tools/javac/lambda/MethodReference08.out
> + test/tools/javac/lambda/MethodReference09.java
> + test/tools/javac/lambda/MethodReference09.out
>
>
>


-- 
Kevin Bourrillion @ Google
http://guava-libraries.googlecode.com


More information about the lambda-dev mailing list