diff options
author | Pedro Magalhães <mail@pmmaga.net> | 2017-04-22 18:41:54 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2017-05-24 17:42:01 +0200 |
commit | a5eb57c96e8e851793d419cd4a4b4815a2cb44cb (patch) | |
tree | 0c6ac290e746e4b6bf7176e99130b8b76ac2f7d0 /Zend/zend_inheritance.c | |
parent | 5dc43b4c9d7dbff583b5906a6d50890d615568c1 (diff) | |
download | php-git-a5eb57c96e8e851793d419cd4a4b4815a2cb44cb.tar.gz |
Allow overriding abstract methods
RFC: https://wiki.php.net/rfc/allow-abstract-function-override
Diffstat (limited to 'Zend/zend_inheritance.c')
-rw-r--r-- | Zend/zend_inheritance.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index 3a32215708..8f43d15600 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -551,16 +551,6 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function * uint32_t child_flags; uint32_t parent_flags = parent->common.fn_flags; - if ((parent->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0 - && parent->common.fn_flags & ZEND_ACC_ABSTRACT - && parent->common.scope != (child->common.prototype ? child->common.prototype->common.scope : child->common.scope) - && child->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_IMPLEMENTED_ABSTRACT)) { - zend_error_noreturn(E_COMPILE_ERROR, "Can't inherit abstract function %s::%s() (previously declared abstract in %s)", - ZSTR_VAL(parent->common.scope->name), - ZSTR_VAL(child->common.function_name), - child->common.prototype ? ZSTR_VAL(child->common.prototype->common.scope->name) : ZSTR_VAL(child->common.scope->name)); - } - if (UNEXPECTED(parent_flags & ZEND_ACC_FINAL)) { zend_error_noreturn(E_COMPILE_ERROR, "Cannot override final method %s::%s()", ZEND_FN_SCOPE_NAME(parent), ZSTR_VAL(child->common.function_name)); } |