History log of /php-src/Zend/zend_inheritance.c (Results 201 – 225 of 437)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 7dc4dd4d 25-Jun-2019 Dmitry Stogov

Merge branch 'PHP-7.4'

* PHP-7.4:
Fixed variance check for abstract constructor during erlay binding


# f09d41ff 25-Jun-2019 Dmitry Stogov

Fixed variance check for abstract constructor during erlay binding

# c6ce1593 25-Jun-2019 Dmitry Stogov

Merge branch 'PHP-7.4'

* PHP-7.4:
Cleanup


# ccbc121c 25-Jun-2019 Dmitry Stogov

Cleanup

# 83c2e678 25-Jun-2019 Dmitry Stogov

Merge branch 'PHP-7.4'

* PHP-7.4:
Prevent useless hash lookups
Update NEWS for 7.4.0alpha3
Update NEWS for PHP 7.4.0alpha2


# bd0cb99d 25-Jun-2019 Dmitry Stogov

Prevent useless hash lookups

Revision tags: php-7.4.0alpha2
# ca22c456 25-Jun-2019 Dmitry Stogov

Merge branch 'PHP-7.4'

* PHP-7.4:
Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time


# 759f4ecd 25-Jun-2019 Dmitry Stogov

Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time

# e18c60cd 24-Jun-2019 Dmitry Stogov

Merge branch 'PHP-7.4'

* PHP-7.4:
Fixed bug 78175 (Preloading must store default values of static variables and properties)


# 0f29fb5c 24-Jun-2019 Dmitry Stogov

Fixed bug 78175 (Preloading must store default values of static variables and properties)

Revision tags: php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1
# e4fae9c0 11-Jun-2019 Nikita Popov

Merge branch 'PHP-7.4'


Revision tags: php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30
# 8f8fcbbd 27-May-2019 Nikita Popov

Support full variance if autoloading is used

Keep track of delayed variance obligations and check them after
linking a class is otherwise finished. Obligations may either be
unresolv

Support full variance if autoloading is used

Keep track of delayed variance obligations and check them after
linking a class is otherwise finished. Obligations may either be
unresolved method compatibility (because the necessecary classes
aren't available yet) or open parent/interface dependencies. The
latter occur because we allow the use of not fully linked classes
as parents/interfaces now.

An important aspect of the implementation is we do not require
classes involved in variance checks to be fully linked in order for
the class to be fully linked. Because the involved types do have to
exist in the class table (as partially linked classes) and we do
check these for correct variance, we have the guarantee that either
those classes will successfully link lateron or generate an error,
but there is no way to actually use them until that point and as
such no possibility of violating the variance contract. This is
important because it ensures that a class declaration always either
errors or will produce an immediately usable class afterwards --
there are no cases where the finalization of the class declaration
has to be delayed until a later time, as earlier variants of this
patch did.

Because variance checks deal with classes in various stages of
linking, we need to use a special instanceof implementation that
supports this, and also introduce finer-grained flags that tell us
which parts have been linked already and which haven't.

Class autoloading for variance checks is delayed into a separate
stage after the class is otherwise linked and before delayed
variance obligations are processed. This separation is needed to
handle cases like A extends B extends C, where B is the autoload
root, but C is required to check variance. This could end up
loading C while the class structure of B is in an inconsistent
state.

show more ...

# 89b2d886 24-May-2019 Nikita Popov

Register class before fetching parent

We want the class declaration to be available while compiling the
parent class.

# 13f675b8 27-May-2019 Nikita Popov

Merge branch 'PHP-7.4'


# e6fac86d 24-May-2019 Nikita Popov

Accept flags argument in zend_lookup_class_ex()

Instead of a single boolean, so we have space for extension here.

# e06ec226 24-May-2019 Nikita Popov

Merge branch 'PHP-7.4'


Revision tags: php-7.2.19RC1, php-7.3.6RC1
# 49a3b03e 08-May-2019 Nikita Popov

Implement basic variance support

This is a minimal variance implementation: It does not support any
cyclic type dependencies. Additionally the preloading requirements
are much more r

Implement basic variance support

This is a minimal variance implementation: It does not support any
cyclic type dependencies. Additionally the preloading requirements
are much more restrictive than necessary. Hopefully we can relax
these in the future.

show more ...

# afec3a92 09-May-2019 Nikita Popov

Avoid early-binding on unresolved types

Fixes bug #76451, and more importantly lays necessary groundwork for
covariant/contravariant types. Bug #76451 is just an edge case, but
once

Avoid early-binding on unresolved types

Fixes bug #76451, and more importantly lays necessary groundwork for
covariant/contravariant types. Bug #76451 is just an edge case, but
once covariance is introduced this will become a common problem instead.

show more ...

# c3ee12e7 23-May-2019 Nikita Popov

Merge branch 'PHP-7.4'


# 64918c77 22-May-2019 Nikita Popov

Forbid use of not fully linked classes

# 6ada4db0 08-May-2019 Nikita Popov

Merge branch 'PHP-7.4'


# f778e1a0 08-May-2019 Nikita Popov

Refactor inheritance type check implementation

Extract the self/parent name resolution code and drop unnecessary
string copies/releases. Store the fe/proto types in local variables.

# 11655d09 08-May-2019 Nikita Popov

Merge branch 'PHP-7.4'


# 5c474010 08-May-2019 Nikita Popov

Deduplicate inheritance type check implementation

Make the check covariant (insofar as it is allowed now, i.e.
nullability and iterable) and call it with appropriate argument
order f

Deduplicate inheritance type check implementation

Make the check covariant (insofar as it is allowed now, i.e.
nullability and iterable) and call it with appropriate argument
order for both parameter and return types.

This makes it simpler to extend to full variance support.

show more ...

# 97cce70e 08-May-2019 Nikita Popov

Merge branch 'PHP-7.4'


12345678910>>...18