]> granicus.if.org Git - php/commitdiff
Change the error message for colliding class/interface/trait names to be a little...
authorKalle Sommer Nielsen <kalle@php.net>
Thu, 26 Mar 2015 00:44:23 +0000 (01:44 +0100)
committerKalle Sommer Nielsen <kalle@php.net>
Thu, 26 Mar 2015 00:44:23 +0000 (01:44 +0100)
  C:\> php -r "interface stdClass { }"
  Error: Cannot declare interface stdClass, because the name is already in use in Command Line Code on line 1

Zend/tests/class_alias_002.phpt
Zend/tests/class_alias_004.phpt
Zend/tests/class_alias_010.phpt
Zend/tests/class_alias_019.phpt
Zend/tests/errmsg_026.phpt
Zend/tests/inter_06.phpt
Zend/zend_builtin_functions.c
Zend/zend_compile.c
ext/opcache/tests/bug67215.phpt
ext/opcache/zend_accelerator_util_funcs.c

index 9601cb25e8180f71fa02beaa97ec86e4c6515176..7a6eb126a920e2da388fb6733328b6cb8c88a761 100644 (file)
@@ -9,4 +9,4 @@ class_alias('foo', 'FOO');
 
 ?>
 --EXPECTF--
-Warning: Cannot redeclare class FOO in %s on line %d
+Warning: Cannot declare class FOO, because the name is already in use in %s on line %d
index b9370dde0e898b7e51053fa5b35a3cd3a72975c2..f99152c96ac4f66a8de09cf4d8a94275610ce41e 100644 (file)
@@ -12,4 +12,4 @@ class_alias('foo', 'test');
 
 ?>
 --EXPECTF--
-Warning: Cannot redeclare class test in %s on line %d
\ No newline at end of file
+Warning: Cannot declare class test, because the name is already in use in %s on line %d
\ No newline at end of file
index 0eff174351521e03f2ea3b79548e4288d5099940..3e52f5ffc5c46c74fefaec8382e9d295cc7839d5 100644 (file)
@@ -11,4 +11,4 @@ class b { }
 
 ?>
 --EXPECTF--
-Warning: Cannot redeclare interface b in %s on line %d
+Warning: Cannot declare interface b, because the name is already in use in %s on line %d
index a0dd249d5594910068d9dbfa9742f1710d907e77..ace349e9bdd9ae669180ddd2ced9fdaceabf6850 100644 (file)
@@ -14,4 +14,4 @@ class_alias('\foo', 'foo');
 
 ?>
 --EXPECTF--
-Warning: Cannot redeclare class foo in %s on line %d
+Warning: Cannot declare class foo, because the name is already in use in %s on line %d
index 1954122900c4fb2b0ed800a43bb50bb211afeb07..90fa87d4f1ce08c3b59b1dd037b0137f98dd0b0a 100644 (file)
@@ -9,4 +9,4 @@ class stdclass {
 echo "Done\n";
 ?>
 --EXPECTF--    
-Fatal error: Cannot redeclare class stdclass in %s on line %d
+Fatal error: Cannot declare class stdclass, because the name is already in use in %s on line %d
index 1987c24a8b96aa37d8f773ed9d435755a711465a..aba8ba4fb49766424908b28547f0db51fad94a5f 100644 (file)
@@ -7,4 +7,4 @@ interface stdClass { }
 
 ?>
 --EXPECTF--
-Fatal error: Cannot redeclare class stdClass in %s on line %d
+Fatal error: Cannot declare interface stdClass, because the name is already in use in %s on line %d
index ecb9078db0d798fe653ef489cdf357b2218d286c..b378f93f0966b915705fc17908b9e15ea91ccf77 100644 (file)
@@ -1536,7 +1536,7 @@ ZEND_FUNCTION(class_alias)
                        if (zend_register_class_alias_ex(alias_name, alias_name_len, ce) == SUCCESS) {
                                RETURN_TRUE;
                        } else {
-                               zend_error(E_WARNING, "Cannot redeclare %s %s", zend_get_object_type(ce), alias_name);
+                               zend_error(E_WARNING, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(ce), alias_name);
                                RETURN_FALSE;
                        }
                } else {
index f8ac5264569806336ecbf6319edb193efe47e35a..de8a89d51fb029b2ec9390e5c8dc232db76a7ac9 100644 (file)
@@ -1002,7 +1002,7 @@ ZEND_API zend_class_entry *do_bind_class(const zend_op_array* op_array, const ze
                         * so we shut up about it.  This allows the if (!defined('FOO')) { return; }
                         * approach to work.
                         */
-                       zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare %s %s", zend_get_object_type(ce), ce->name->val);
+                       zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(ce), ce->name->val);
                }
                return NULL;
        } else {
@@ -1036,13 +1036,13 @@ ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array
                         * so we shut up about it.  This allows the if (!defined('FOO')) { return; }
                         * approach to work.
                         */
-                       zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare %s %s", zend_get_object_type(Z_OBJCE_P(op2)), Z_STRVAL_P(op2));
+                       zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(Z_OBJCE_P(op2)), Z_STRVAL_P(op2));
                }
                return NULL;
        }
 
        if (zend_hash_exists(class_table, Z_STR_P(op2))) {
-               zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare %s %s", zend_get_object_type(ce), ce->name->val);
+               zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(ce), ce->name->val);
        }
 
        zend_do_inheritance(ce, parent_ce);
@@ -1051,7 +1051,7 @@ ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op_array *op_array
 
        /* Register the derived class */
        if (zend_hash_add_ptr(class_table, Z_STR_P(op2), ce) == NULL) {
-               zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare %s %s", zend_get_object_type(ce), ce->name->val);
+               zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(ce), ce->name->val);
        }
        return ce;
 }
index e9919d10011ea3cd5a029d208159d8fc12a3059c..24842b4e04ac728563987a922cd59a863f490f76 100644 (file)
@@ -25,4 +25,4 @@ unlink($file_c);
 unlink($file_p);
 ?>
 --EXPECTF--
-Fatal error: Cannot redeclare class c in %sbug67215.c.php on line %d
+Fatal error: Cannot declare class c, because the name is already in use in %sbug67215.c.php on line %d
index bd373d90d3ea96b399d4b76765f0c1e2368a0034..9aefa517783e494be4b0f0411b1ae3d732c9e2e5 100644 (file)
@@ -755,7 +755,7 @@ failure:
        CG(in_compilation) = 1;
        zend_set_compiled_filename(ce1->info.user.filename);
        CG(zend_lineno) = ce1->info.user.line_start;
-       zend_error(E_ERROR, "Cannot redeclare %s %s", zend_get_object_type(ce1), ce1->name->val);
+       zend_error(E_ERROR, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(ce1), ce1->name->val);
 }
 
 #ifdef __SSE2__