From 46de334452683953425b25fc0451649eaa6059fe Mon Sep 17 00:00:00 2001 From: Joe Watkins Date: Wed, 1 Feb 2017 18:33:58 +0000 Subject: Revert "Inheritance checks should not ignore parents if these implement an interface" This reverts commit b67eb3440bb244adf6957bf2c68aeeaa6efc8c8d. --- Zend/zend_inheritance.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Zend/zend_inheritance.c') diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index 8ad5cc2e01..fd1345f844 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -607,12 +607,13 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function * } else if (!(parent->common.fn_flags & ZEND_ACC_CTOR) || (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; - } } + if (child->common.prototype && ( + child->common.prototype->common.fn_flags & ZEND_ACC_ABSTRACT + )) { + parent = child->common.prototype; + } if (UNEXPECTED(!zend_do_perform_implementation_check(child, parent))) { int error_level; const char *error_verb; -- cgit v1.2.1