mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
Fix class name prohibition to work for namespaced classes, too
This commit is contained in:
parent
a13d13429a
commit
a03af7ff92
@ -4608,6 +4608,15 @@ void zend_compile_class_decl(zend_ast *ast) /* {{{ */
|
||||
import_name = zend_hash_find_ptr(CG(current_import), lcname);
|
||||
}
|
||||
|
||||
while (info->name) {
|
||||
if (lcname->len == info->name_len && strcmp(lcname->val, info->name) == 0) {
|
||||
zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare class %s "
|
||||
"because %s is a type name", name->val, info->name);
|
||||
}
|
||||
info++;
|
||||
}
|
||||
|
||||
|
||||
if (CG(current_namespace)) {
|
||||
name = zend_prefix_with_ns(name);
|
||||
|
||||
@ -4622,14 +4631,6 @@ void zend_compile_class_decl(zend_ast *ast) /* {{{ */
|
||||
"because the name is already in use", name->val);
|
||||
}
|
||||
|
||||
while (info->name) {
|
||||
if (lcname->len == info->name_len && strcmp(lcname->val, info->name) == 0) {
|
||||
zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare class %s "
|
||||
"because %s is a type name", name->val, info->name);
|
||||
}
|
||||
info++;
|
||||
}
|
||||
|
||||
name = zend_new_interned_string(name);
|
||||
lcname = zend_new_interned_string(lcname);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user