@@ -3045,7 +3045,8 @@ private function parsePostfixExpressionRest($expression, $allowUpdateExpression
30453045            $ expressioninstanceof  SubscriptExpression ||
30463046            $ expressioninstanceof  ScopedPropertyAccessExpression ||
30473047            $ expressioninstanceof  StringLiteral ||
3048-             $ expressioninstanceof  ArrayCreationExpression
3048+             $ expressioninstanceof  ArrayCreationExpression ||
3049+             $ expressioninstanceof  ObjectCreationExpression
30493050        )) {
30503051            return  $ expression
30513052        }
@@ -3199,6 +3200,16 @@ private function parseSubscriptExpression($expression) : SubscriptExpression {
31993200        return  $ subscriptExpression
32003201    }
32013202
3203+     private  function  parseNewObjectNoParenthesisMemberAccessExpression ($ expressionMemberAccessExpression 
3204+         $ memberAccessExpressionnew  MemberAccessExpression ();
3205+         $ memberAccessExpressionparent  = $ expression
3206+ 
3207+         $ memberAccessExpressiondereferencableExpression  = $ expression
3208+         $ memberAccessExpressionarrowToken  = $ this eat (TokenKind::ArrowToken, TokenKind::QuestionArrowToken);
3209+         $ memberAccessExpressionmemberName  = $ this parseMemberName ($ memberAccessExpression
3210+ 
3211+         return  $ memberAccessExpression
3212+     }
32023213    private  function  parseMemberAccessExpression ($ expressionMemberAccessExpression 
32033214        $ memberAccessExpressionnew  MemberAccessExpression ();
32043215        $ memberAccessExpressionparent  = $ expressionparent ;
@@ -3287,6 +3298,11 @@ private function parseObjectCreationExpression($parentNode) {
32873298            $ objectCreationExpressionclassMembers  = $ this parseClassMembers ($ objectCreationExpression
32883299        }
32893300
3301+         // PHP8.4 new with no parenthesis 
3302+         if  ($ this getCurrentToken ()->kind  === TokenKind::ArrowToken) {
3303+             return  $ this parsePostfixExpressionRest ($ objectCreationExpression
3304+         }
3305+ 
32903306        return  $ objectCreationExpression
32913307    }
32923308
0 commit comments