]> granicus.if.org Git - php/commitdiff
Fixlets
authorZeev Suraski <zeev@php.net>
Wed, 28 Jan 2004 10:52:27 +0000 (10:52 +0000)
committerZeev Suraski <zeev@php.net>
Wed, 28 Jan 2004 10:52:27 +0000 (10:52 +0000)
Zend/zend_compile.c

index aae2eb4a75ee4ce5022eb6b62c4234ebdc6ef010..f83dc2ac463b632dc2161b749cff142e8d67a91d 100644 (file)
@@ -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);