summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReeze Xia <reeze@php.net>2015-03-03 21:28:09 +0800
committerReeze Xia <reeze@php.net>2015-03-03 21:28:09 +0800
commitbadc19d8840ae367ab5efea28c55783c0b0862e5 (patch)
treed38cdab09798488f3ec00a05f597a70a0b8d114a
parentbc28ed6788459829593c5ddff310a505651cb797 (diff)
downloadphp-git-badc19d8840ae367ab5efea28c55783c0b0862e5.tar.gz
Optimize class constant declare compilation
-rw-r--r--Zend/zend_compile.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index ae23d83f2a..b0269ca17e 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4535,6 +4535,11 @@ void zend_compile_class_const_decl(zend_ast *ast) /* {{{ */
zend_class_entry *ce = CG(active_class_entry);
uint32_t i;
+ if ((ce->ce_flags & ZEND_ACC_TRAIT) != 0) {
+ zend_error_noreturn(E_COMPILE_ERROR, "Traits cannot have constants");
+ return;
+ }
+
for (i = 0; i < list->children; ++i) {
zend_ast *const_ast = list->child[i];
zend_ast *name_ast = const_ast->child[0];
@@ -4542,11 +4547,6 @@ void zend_compile_class_const_decl(zend_ast *ast) /* {{{ */
zend_string *name = zend_ast_get_str(name_ast);
zval value_zv;
- if ((ce->ce_flags & ZEND_ACC_TRAIT) != 0) {
- zend_error_noreturn(E_COMPILE_ERROR, "Traits cannot have constants");
- return;
- }
-
zend_const_expr_to_zval(&value_zv, value_ast);
name = zend_new_interned_string_safe(name);