Skip to content

Commit 9619562

Browse files
committed
Properly relove self::CONSTANT at compile time
1 parent db2e2af commit 9619562

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

Zend/zend_compile.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10073,7 +10073,19 @@ void zend_eval_const_expr(zend_ast **ast_ptr) /* {{{ */
1007310073
return;
1007410074
}
1007510075

10076-
resolved_name = zend_resolve_class_name_ast(class_ast);
10076+
switch (zend_get_class_fetch_type(zend_ast_get_str(class_ast))) {
10077+
case ZEND_FETCH_CLASS_SELF:
10078+
if (!zend_is_scope_known()) {
10079+
return;
10080+
}
10081+
resolved_name = zend_string_copy(CG(active_class_entry)->name);
10082+
break;
10083+
case ZEND_FETCH_CLASS_DEFAULT:
10084+
resolved_name = zend_resolve_class_name_ast(class_ast);
10085+
break;
10086+
default:
10087+
return;
10088+
}
1007710089

1007810090
if (!zend_try_ct_eval_class_const(&result, resolved_name, zend_ast_get_str(name_ast))) {
1007910091
zend_string_release_ex(resolved_name, 0);

0 commit comments

Comments
 (0)