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 08:27:53 PDT 2010


Fantastic.  Discarding my draft email to lambda-dev in which I was going to
ask if you could please support this. :-)


On Wed, Aug 4, 2010 at 7:54 AM, Brian Goetz <brian.goetz at oracle.com> wrote:

> Yes, that is exactly the point!
>
> Stay tuned for some cool examples which I was going to post later today.
>
>
> On 8/4/2010 10:36 AM, Kevin Bourrillion wrote:
>
>> 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