Morning Levi, > There is a future compatibility issue of this same type with `object`:
If that is an issue, it is for future RFC's to deal with. Cheers Joe On Thu, Nov 10, 2016 at 12:12 PM, Levi Morrison <le...@php.net> wrote: > On Thu, Nov 10, 2016 at 2:11 AM, Niklas Keller <m...@kelunik.com> wrote: > > 2016-11-09 21:53 GMT+01:00 Christoph M. Becker <cmbecke...@gmx.de>: > > > >> On 09.11.2016 at 17:28, Joe Watkins wrote: > >> > >> > I want to explain why I voted no on this: > >> > > >> > I think it's significantly less useful without variance, variance > is > >> > something that is usually difficult to achieve in PHP, but not for > this > >> > feature in particular. > >> > >> Can you please elaborate what you mean with variance? I see some > >> practical use cases for covariance of a method with return type object, > >> but I don't see how contravariance could be achieved for parameters of > >> type object. > >> > >> If your suggestion is only about invariance of object return types, I'm > >> not sure if this very special case would make sense (for consistency > >> reasons). > >> > > > > We already have it for iterable -> array. We would have it for all other > > types if there wouldn't be an implementation issue. > > > > Regards, Niklas > > > > Cheers, > >> Christoph > >> > >> > I absolutely want it, but I want it to be properly useful. > >> > > >> > If the RFC were halted and patched to include variance, I'd +1 it. > >> > > >> > Cheers > >> > Joe > >> > > >> > On Sun, Nov 6, 2016 at 5:28 PM, Michał Brzuchalski > <michal@brzuchalski. > >> .com> > >> > wrote: > >> > > >> >> Hi everyone, > >> >> > >> >> Two weeks have passed since this RFC was put to discussion here. > >> >> > >> >> Therefore, I'm going to put it to a vote for inclusion in PHP 7.2. > >> >> > >> >> Voting starts today, 2016-11-06, and will close after two weeks on > the > >> >> Sunday 2016-11-20 at midnight. > >> >> > >> >> The RFC and voting widget can be found here: > >> >> https://wiki.php.net/rfc/object-typehint > >> >> > >> >> It's a normal 2/3 majority required vote. > >> >> > >> >> Thanks! > >> >> -- > >> >> regards / pozdrawiam, > >> >> -- > >> >> Michał Brzuchalski > >> >> about.me/brzuchal > >> >> brzuchalski.com > >> >> > >> > > >> > >> > >> -- > >> PHP Internals - PHP Runtime Development Mailing List > >> To unsubscribe, visit: http://www.php.net/unsub.php > >> > >> > > In a return type context `iterable` can be changed to `Traversable` or > `array`; it cannot be changed to `Collection` as we cannot guarantee > at compile-time that `Collection` implements Traversable. > > There is a future compatibility issue of this same type with `object`: > right now the only user-definable types are objects. However, enums > are an often requested feature and they may not be objects. Thus we > wouldn't be able to guarantee that `Foo` is an object. There is a > draft RFC with a patch for enums and expect it will come to a > discussion soon, so I don't think we'll have to wait very long to know > the answer here. >