On Tue, Nov 21, 2023 at 12:41 AM Larry Garfield <la...@garfieldtech.com> wrote:
>
> 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
>

Hmmm,

> 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,

I'd also probably run into them, and the only one I can think of will
be moot after this RFC:

- `unset($this->var)` to use magic methods instead of the properties
in some older proxies

Other than that, I can't think of anything, though that isn't really
important for reflection...

Robert Landers
Software Engineer
Utrecht NL

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

Reply via email to