Fix class name prohibition to work for namespaced classes, too

This commit is contained in:
Andrea Faulds 2015-01-04 02:42:54 +00:00
parent a13d13429a
commit a03af7ff92

View File

@ -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);