Skip to content

Commit d2110e9

Browse files
committed
Use helper in one more place
1 parent 862a4f3 commit d2110e9

File tree

2 files changed

+4
-12
lines changed

2 files changed

+4
-12
lines changed

Zend/tests/class_uses_static.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ class Test {
99

1010
?>
1111
--EXPECTF--
12-
Fatal error: Cannot use 'static' as trait name as it is reserved in %s on line %d
12+
Fatal error: Cannot use 'static' as trait name, as it is reserved in %s on line %d

Zend/zend_compile.c

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6474,23 +6474,15 @@ void zend_compile_use_trait(zend_ast *ast) /* {{{ */
64746474

64756475
for (i = 0; i < traits->children; ++i) {
64766476
zend_ast *trait_ast = traits->child[i];
6477-
zend_string *name = zend_ast_get_str(trait_ast);
64786477

64796478
if (ce->ce_flags & ZEND_ACC_INTERFACE) {
6479+
zend_string *name = zend_ast_get_str(trait_ast);
64806480
zend_error_noreturn(E_COMPILE_ERROR, "Cannot use traits inside of interfaces. "
64816481
"%s is used in %s", ZSTR_VAL(name), ZSTR_VAL(ce->name));
64826482
}
64836483

6484-
switch (zend_get_class_fetch_type(name)) {
6485-
case ZEND_FETCH_CLASS_SELF:
6486-
case ZEND_FETCH_CLASS_PARENT:
6487-
case ZEND_FETCH_CLASS_STATIC:
6488-
zend_error_noreturn(E_COMPILE_ERROR, "Cannot use '%s' as trait name "
6489-
"as it is reserved", ZSTR_VAL(name));
6490-
break;
6491-
}
6492-
6493-
ce->trait_names[ce->num_traits].name = zend_resolve_class_name_ast(trait_ast);
6484+
ce->trait_names[ce->num_traits].name =
6485+
zend_resolve_const_class_name_reference(trait_ast, "trait name");
64946486
ce->trait_names[ce->num_traits].lc_name = zend_string_tolower(ce->trait_names[ce->num_traits].name);
64956487
ce->num_traits++;
64966488
}

0 commit comments

Comments
 (0)