On Mon, Nov 20, 2023, at 11:08 PM, Rowan Tommins wrote:
> On 16/11/2023 20:41, Rowan Tommins wrote:
>> Hi all,
>>
>> I have finally written up an RFC I have been considering for some 
>> time: Harmonise "untyped" and "typed" properties
>>
>> RFC URL: https://wiki.php.net/rfc/mixed_vs_untyped_properties
>
>
> I've revised the RFC; it now proposes to keep the implicit "= null" for 
> untyped properties, although I'm still interested in suggestions for 
> other strategies around that. I have also added discussion of variance 
> checks (thanks Claude for the tips on that).

Thanks.  It's looking pretty good, and should simplify things considerably.

> While doing so, I checked Reflection, and am unsure how to proceed. 
> Currently ReflectionParameter shows a difference between "function 
> foo($bar)" and "function foo(mixed $bar)", even though these are 
> analysed as equivalent in inheritance checks. Should ReflectionProperty 
> also retain this distinction? Was the possibility discussed when "mixed" 
> was introduced of using a ReflectionType of mixed for both cases?

I don't recall any discussion of ReflectionType when mixed was added, no.

My initial gut reaction is that both ReflectionParameter and ReflectionProperty 
should treat "omitted" as "mixed", and just evaluate their type to "mixed".  It 
is in practice a distinction without meaning, or will be after this RFC.  That 
said, I also have an itch telling me that there are a few small-but-important 
edge cases where you would care about the difference between mixed and none in 
reflection, and that I'd be the one to run into them, but I cannot think of 
what they would be.

--Larry Garfield

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to