Hi Jim,

----- Mail original -----
> De: "Jim Laskey" <james.las...@oracle.com>
> À: "core-libs-dev" <core-libs-dev@openjdk.java.net>
> Cc: "Remi Forax" <fo...@univ-mlv.fr>, "Brian Goetz" <brian.go...@oracle.com>, 
> "Paul Sandoz" <paul.san...@oracle.com>
> Envoyé: Vendredi 18 Mai 2018 20:48:35
> Objet: Re: RFR: CSR - JDK-8203428 Predicate::not

> I’m going to pull a Brian here and say, “not” should stand on its own merits.
> The “of” discussion should diverge to it’s own RFE. :-)

i agree,
sorry to not have been crystal clear, it my head it was clear that that 
everything i've written was a way to avoid Predicate.of() and not something 
should stop the inclusion of Predicate.not, stackoverflow has already decided 
that Predicate.not was the right method [1].

Rémi 

[1] 
https://stackoverflow.com/questions/21488056/how-to-negate-a-method-reference-predicate

> 
>> On May 18, 2018, at 3:41 PM, Remi Forax <fo...@univ-mlv.fr> wrote:
>> 
>> ----- Mail original -----
>>> De: "Brian Goetz" <brian.go...@oracle.com>
>>> À: "Paul Sandoz" <paul.san...@oracle.com>, "Jim Laskey"
>>> <james.las...@oracle.com>
>>> Cc: "core-libs-dev" <core-libs-dev@openjdk.java.net>
>>> Envoyé: Vendredi 18 Mai 2018 20:08:42
>>> Objet: Re: RFR: CSR - JDK-8203428 Predicate::not
>> 
>>> We did discover that default methods on FIs combined with subtyping of
>>> FIs caused trouble.  But static methods are fine.
>>> 
>>> If we're going to do Xxx.of(...), we should do it uniformly across FIs,
>>> not just for Predicate.  I think this is a reasonable move, but we don't
>>> have to do it right now.  (The benefit is mostly that we pick up
>>> inference of the type parameters.)
>> 
>> we can also:
>>  - allow diamond syntax on cast
>>  - teach the inference that when a method is called on a method reference, 
>> it's
>>  maybe an automorphism, so the target type could be back-propagated as the
>>  target type of the method reference and then the method can be checked from
>>  left to right (it's maybe too magical but it seems to work great in 
>> practice)
>>  - when inference fails, pick the closest interface from java.util.function 
>> to
>>  the function type, i.e we abandon the idea to introduce real function type 
>> in
>>  the future for more convenience.
>> 
>> regards,
>> Rémi
>> 
>>> 
>>> On 5/18/2018 1:54 PM, Paul Sandoz wrote:
>>>> 
>>>>> On May 18, 2018, at 9:35 AM, Jim Laskey <james.las...@oracle.com> wrote:
>>>>> 
>>>>> Introduce a new static method Predicate::not which will allow developers 
>>>>> to
>>>>> negate predicate lambdas trivially.
>>>>> 
>>>>> 
>>>>> csr: https://bugs.openjdk.java.net/browse/JDK-8203428
>>>> 
>>>> +1 thank you for taking action on this.
>>>> 
>>>> Predicate not captures the majority use case very concisely and clearly.
>>>> 
>>>> I am reluctant to go for an alternative or companion Predicate.of, and 
>>>> would
>>>> need to think carefully about that idiom and it's application on other
>>>> functional interfaces (perhaps we went too far adding such default methods 
>>>> to
>>>> these interfaces…).
>>>> 
> >>> Paul.

Reply via email to