Eliminated check

This commit is contained in:
Dmitry Stogov 2018-07-09 15:18:09 +03:00
parent c90f1964f9
commit a34fedb723

View file

@ -588,13 +588,13 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
} else if (parent_flags & ZEND_ACC_ABSTRACT) {
child->common.fn_flags |= ZEND_ACC_IMPLEMENTED_ABSTRACT;
child->common.prototype = parent;
} else if (!(parent->common.fn_flags & ZEND_ACC_CTOR) || (parent->common.prototype && (parent->common.prototype->common.scope->ce_flags & ZEND_ACC_INTERFACE))) {
} else if (!(parent->common.fn_flags & ZEND_ACC_CTOR)) {
child->common.prototype = parent->common.prototype ? parent->common.prototype : parent;
} else if (parent->common.prototype && (parent->common.prototype->common.scope->ce_flags & ZEND_ACC_INTERFACE)) {
/* ctors only have a prototype if it comes from an interface */
child->common.prototype = parent->common.prototype ? parent->common.prototype : parent;
/* and if that is the case, we want to check inheritance against it */
if (parent->common.fn_flags & ZEND_ACC_CTOR) {
parent = child->common.prototype;
}
parent = child->common.prototype;
}
if (UNEXPECTED(!zend_do_perform_implementation_check(child, parent))) {