On Tue, Nov 12, 2024, at 10:43 AM, Claude Pache wrote:
>> Le 12 nov. 2024 à 14:53, Gina P. Banyard <intern...@gpb.moe> a écrit :
>> 
>> Hello internals,
>> 
>> Ondřej Mirtes (author of PHPStan) remarked to me in August that Closure is 
>> not a subtype of callable.
>> The implementation of this is quite straight forward and can be seen on 
>> GitHub. [1]
>> The question is if there are any concern or not and if this requires an RFC 
>> or can just be merged as is.
>> 
>> Best regards,
>> 
>> Gina P. Banyard
>> 
>> [1] https://github.com/php/php-src/pull/15492
>
>
> Hi Gina,
>
> That seems reasonable.
>
> But personally, I would be more interested in having a type equivalent 
> to `callable&object`, that is all objects that implement the 
> `__invoke()` magic method (this is a strict super-type of \Closure).
>
> —Claude

I am in favor of Closure being covarant to callable, and to a new pseudo-type 
for Closure|Object-with-__invoke.  (Maybe Invokable?)  I do think they'd 
require brief RFCs, but both would have my support.

--Larry Garfield

Reply via email to