As Larry was asking for an example. The ParameterBag::get() function from Symfony (and others) that allows you to fetch request params, for example. That's a mixed type that could return different values, depending on your request body. Yes, I can type for all possible scalar values + null + array, but that's a bit of a PITA and phpstan would complain nonetheless, as the return type of theParameterBag ::get() function is "mixed" and we can't change that. Right now we're annotating "mixed" with a docblock.
So yes, a "mixed" type is greatly appreciated when dealing with user input. Thanks! On Mon, Apr 20, 2020 at 6:41 PM Guilliam Xavier <guilliam.xav...@gmail.com> wrote: > On Mon, Apr 20, 2020 at 5:17 PM Larry Garfield <la...@garfieldtech.com> > wrote: > > > > With union types and stringable already on the way, I'm not sure what > other non-hypothetical use cases would still be that fugly that you'd now > need to fall back to `mixed`. > > For instance: > - the parameter of [a wrapper around] gettype() or an is_* function > - the return of [a generic implementation of] > ArrayAccess::offsetGet() or Iterator::current(), or of a userland > array_value_first() or array_value_last() function > > To me, especially the return type declaration can be useful to ensure > that [every code path of] the implementation returns a value. > > -- > Guilliam Xavier > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >