#44: do not trim last nil if array item list ends by a comma

This commit is contained in:
z7zmey
2018-06-26 12:22:51 +03:00
parent 10c63a30ae
commit 290645f3c9
9 changed files with 91 additions and 43 deletions

View File

@@ -7517,8 +7517,8 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line php7/php7.y:4861
{
if yyDollar[1].list[len(yyDollar[1].list)-1] == nil {
yyVAL.list = yyDollar[1].list[:len(yyDollar[1].list)-1]
if len(yyDollar[1].list) == 1 && yyDollar[1].list[0] == nil {
yyVAL.list = yyDollar[1].list[:0]
} else {
yyVAL.list = yyDollar[1].list
}

View File

@@ -4859,8 +4859,8 @@ property_name:
array_pair_list:
non_empty_array_pair_list
{
if ($1[len($1)-1] == nil) {
$$ = $1[:len($1)-1]
if (len($1) == 1 && $1[0] == nil) {
$$ = $1[:0]
} else {
$$ = $1
}

View File

@@ -2072,6 +2072,7 @@ func TestPhp7(t *testing.T) {
&expr.ArrayItem{
Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}},
},
nil,
},
},
},
@@ -2475,6 +2476,7 @@ func TestPhp7(t *testing.T) {
&expr.ArrayItem{
Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}},
},
nil,
},
},
},