On Wed, Mar 15, 2017 at 4:14 PM, Nikita Popov <nikita....@gmail.com> wrote:
> Fixed in 7.1 by
> https://github.com/php/php-src/commit/2bba4a0d7f6d5e5712d60bc1cf2119622d837e55.
>
Thanks!

> I personally don't consider a PHP 7.0 backport worthwhile, as this is a long
> standing issue (from early PHP 5 days) and the fix will probably be hacky on
> 7.0.
>
Probably not, but I like to think out loud. :)

> Note that CT resolving self:: doesn't quite cut it, because you also
> have to deal with parent::, which the compiler currently does not track.
>
It doesn't track the specific ce (because it may not know the real
parent until runtime), but we have the extends node which gives us the
parent's name and that could be rewritten in the same way as self.

> An alternative would be to force a full constant update on any parent CE, to
> ensure they will be evaluated in the correct order. Of course, this has
> other side effects, because it changes the point in time at which a certain
> constant is updated.
>
Yeah, there's too many edge cases to go down that rabbit hole, and as
you say, it's a much older bug than 7.0 even.  So best face forwards
on this one.

-Sara

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

Reply via email to