-
Notifications
You must be signed in to change notification settings - Fork 73
Open
Description
Context
- [Formatting Bug]: Array to object into optional chaining shufo/vscode-blade-formatter#746
- php-parser 3.1.5
Problems
When php code like ($value ?: null)?->someProperty;
passed to parser, it throws unexpected Syntax exception.
$ node
Welcome to Node.js v16.16.0.
Type ".help" for more information.
> const parser = require('php-parser')
undefined
> const target = `($value ?: null)?->someProperty;`;
undefined
> const eval = parser.parseEval(target)
Uncaught:
[SyntaxError: Parse Error : syntax error, unexpected '?->' (T_NULLSAFE_OBJECT_OPERATOR), expecting ';' on line 1
] {
lineNumber: 1,
fileName: 'eval',
columnNumber: 16
}
But its syntax is valid in php.
$ php -v
PHP 8.1.2-1ubuntu2.10 (cli) (built: Jan 16 2023 15:19:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.10, Copyright (c), by Zend Technologies
$ cat test.php
<?php
echo ($value ?: null)?->someProperty;
$ php --syntax-check test.php
No syntax errors detected in test.php
Repro:
test.js
const parser = require(".");
const target = `($value ?: null)?->someProperty;`;
const eval = parser.parseEval(target);
$ node test.js
Metadata
Metadata
Assignees
Labels
No labels