From a7ff369cacb00ffb7775fe46bfa7413bbae0ea5d Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Wed, 28 Jan 2004 10:52:27 +0000 Subject: [PATCH] Fixlets --- Zend/zend_compile.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index aae2eb4a75..f83dc2ac46 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1733,12 +1733,13 @@ static zend_bool do_inherit_method_check(HashTable *child_function_table, zend_f return 1; /* method doesn't exist in child, copy from parent */ } - if (parent->common.fn_flags & ZEND_ACC_ABSTRACT + if (parent->common.scope != child->common.scope + && parent->common.fn_flags & ZEND_ACC_ABSTRACT && child->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_IMPLEMENTED_ABSTRACT)) { zend_error(E_COMPILE_ERROR, "Can't inherit abstract function %s::%s() (previously declared abstract in %s)", parent->common.scope->name, child->common.function_name, - child->common.prototype->common.scope->name); + child->common.scope->name); } if (parent_flags & ZEND_ACC_FINAL) { @@ -2436,23 +2437,6 @@ void zend_do_end_class_declaration(znode *class_token, znode *parent_token TSRML } -#if 0 -/* This is a part of an incomplete patch, coming soon */ -ZEND_API void zend_do_extends(znode *result, znode *class_token, zend_bool is_first_parent TSRMLS_DC) -{ - zend_bool is_class = CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE; - - if (is_class) { - if (!is_first_parent) { - zend_error(E_COMPILE_ERROR, "Classes may extend only one parent"); - } else { - *result = *class_token; - } - } else { /* interface */ - } -} -#endif - void zend_do_implements_interface(znode *interface_znode TSRMLS_DC) { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); -- 2.40.0