summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2004-01-28 10:52:27 +0000
committerZeev Suraski <zeev@php.net>2004-01-28 10:52:27 +0000
commita7ff369cacb00ffb7775fe46bfa7413bbae0ea5d (patch)
tree879a9ac6e7a5621581903cf4ee18365b5123de65
parent2adaa11f2fcab72bf8dc4b5d875ce084e9080caa (diff)
downloadphp-git-a7ff369cacb00ffb7775fe46bfa7413bbae0ea5d.tar.gz
Fixlets
-rw-r--r--Zend/zend_compile.c22
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);