diff options
author | Zeev Suraski <zeev@php.net> | 2004-01-28 10:52:27 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2004-01-28 10:52:27 +0000 |
commit | a7ff369cacb00ffb7775fe46bfa7413bbae0ea5d (patch) | |
tree | 879a9ac6e7a5621581903cf4ee18365b5123de65 | |
parent | 2adaa11f2fcab72bf8dc4b5d875ce084e9080caa (diff) | |
download | php-git-a7ff369cacb00ffb7775fe46bfa7413bbae0ea5d.tar.gz |
Fixlets
-rw-r--r-- | Zend/zend_compile.c | 22 |
1 files 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); |