From 78492f64568beb96b8ba8603fae41f340ae28c53 Mon Sep 17 00:00:00 2001 From: i582 Date: Sun, 7 Feb 2021 07:52:29 +0300 Subject: [PATCH] internal: fixed parsing of anonymous classes Since now 'ctor_arguments' returns nil, it is necessary to initialize it to avoid panics. --- internal/php7/php7.go | 4 ++++ internal/php7/php7.y | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 18eef9d..c7a41b4 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -4935,6 +4935,10 @@ yydefault: yyDollar = yyS[yypt-8 : yypt+1] // line internal/php7/php7.y:2499 { + if yyDollar[2].node == nil { + yyDollar[2].node = &ArgumentList{} + } + class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 928b3d1..389d96b 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2497,6 +2497,10 @@ non_empty_for_exprs: anonymous_class: T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' { + if $2 == nil { + $2 = &ArgumentList{} + } + class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1,