From ab154b7a64f5fe7ac103ed85b498fcb14109725e Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 6 Jan 2020 15:57:47 +0100 Subject: [PATCH] Make class constants fully dereferencable --- .../class_constant_static_deref.phpt | 27 +++++++++++++++++++ Zend/zend_language_parser.y | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 Zend/tests/varSyntax/class_constant_static_deref.phpt diff --git a/Zend/tests/varSyntax/class_constant_static_deref.phpt b/Zend/tests/varSyntax/class_constant_static_deref.phpt new file mode 100644 index 0000000000..7585a30dc0 --- /dev/null +++ b/Zend/tests/varSyntax/class_constant_static_deref.phpt @@ -0,0 +1,27 @@ +--TEST-- +Class constants can be used as a class name +--FILE-- + +--EXPECT-- +int(42) +int(42) +int(42) diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 17c4632922..8db53e11d0 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -1150,12 +1150,12 @@ fully_dereferencable: variable { $$ = $1; } | '(' expr ')' { $$ = $2; } | dereferencable_scalar { $$ = $1; } + | class_constant { $$ = $1; } ; array_object_dereferencable: fully_dereferencable { $$ = $1; } | constant { $$ = $1; } - | class_constant { $$ = $1; } ; callable_expr: -- 2.50.0