Hi All,

Id' like to anounce voting reset - will end in two weeks on 28.11.2016 at
midnight and requires 2/3 majority as previously.

There were improvements suggested by Joe Watkins and earlier by Nikita
Popov to the patch.

Those improvements are described on RFC under "Covariance" section
https://wiki.php.net/rfc/object-typehint#covariance

It means any `object` typehint or return type can be narrowed to more
specified type (class name) similar to `iterable` pseudo-type but behaves
covariant (more general type can be raplaced with narrowed one).

P.S. I hope this improvement will bring more positive votes.

regards,
--
Michał

2016-11-10 13:30 GMT+01:00 Joe Watkins <pthre...@pthreads.org>:

> Levi,
>
>     You are assuming it would *need* to be removed :)
>
>     Future RFC's must deal with the engine as they find it, as this RFC
> has done.
>
>     If it is true that this would prohibit enums being non-objects, and
> I'm not certain that it does, then enums would have to be objects, if
> that's how they find the engine.
>
>     If your only concern is about a non-existent feature, then maybe
> you're concern can be alleviated by the non-existent JIT (which does
> partially exist): With a JIT, it doesn't much matter what represents enums
> anyway.
>
>     These are problems for the future, not today.
>
> Cheers
> Joe
>
> On Thu, Nov 10, 2016 at 12:20 PM, Levi Morrison <le...@php.net> wrote:
>
>> On Thu, Nov 10, 2016 at 5:18 AM, Joe Watkins <pthre...@pthreads.org>
>> wrote:
>> > 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.
>> >
>> >
>>
>> I strongly disagree here; once we add `object` return type covariance
>> it cannot easily be removed.
>>
>
>


-- 
regards / pozdrawiam,
--
Michał Brzuchalski
about.me/brzuchal
brzuchalski.com

Reply via email to