From c141ee3f9c31276264dba886a880e6160b8cb4ea Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 6 Jan 2020 16:22:17 +0100 Subject: Allow arbitrary expressions in new/instanceof using () syntax --- Zend/tests/varSyntax/new_instanceof_expr.phpt | 18 ++++++++++++++++++ Zend/zend_language_parser.y | 1 + 2 files changed, 19 insertions(+) create mode 100644 Zend/tests/varSyntax/new_instanceof_expr.phpt diff --git a/Zend/tests/varSyntax/new_instanceof_expr.phpt b/Zend/tests/varSyntax/new_instanceof_expr.phpt new file mode 100644 index 0000000000..475f7a9dae --- /dev/null +++ b/Zend/tests/varSyntax/new_instanceof_expr.phpt @@ -0,0 +1,18 @@ +--TEST-- +new with an arbitrary expression +--FILE-- + +--EXPECT-- +object(stdClass)#1 (0) { +} +object(stdClass)#1 (0) { +} +bool(true) diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index af8b67af5c..02dbd091dc 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -1078,6 +1078,7 @@ class_name: class_name_reference: class_name { $$ = $1; } | new_variable { $$ = $1; } + | '(' expr ')' { $$ = $2; } ; exit_expr: -- cgit v1.2.1