From e3aaf7bd133d2c9cc3a1b3c21e294a22c01941ac Mon Sep 17 00:00:00 2001 From: Tyler Christensen Date: Mon, 24 Apr 2023 12:44:37 -0600 Subject: [PATCH] php8.1: do not resolve reserved name `never` in NamespaceResolver --- pkg/visitor/nsresolver/namespace_resolver.go | 2 ++ pkg/visitor/nsresolver/namespace_resolver_test.go | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/pkg/visitor/nsresolver/namespace_resolver.go b/pkg/visitor/nsresolver/namespace_resolver.go index 90925b3..fb11efb 100644 --- a/pkg/visitor/nsresolver/namespace_resolver.go +++ b/pkg/visitor/nsresolver/namespace_resolver.go @@ -372,6 +372,8 @@ func (ns *Namespace) ResolveName(nameNode ast.Vertex, aliasType string) (string, case "object": fallthrough case "mixed": // 8.0 + fallthrough + case "never": // 8.1 return part, nil } } diff --git a/pkg/visitor/nsresolver/namespace_resolver_test.go b/pkg/visitor/nsresolver/namespace_resolver_test.go index 117f1c9..4347898 100644 --- a/pkg/visitor/nsresolver/namespace_resolver_test.go +++ b/pkg/visitor/nsresolver/namespace_resolver_test.go @@ -861,6 +861,12 @@ func TestDoNotResolveReservedNames(t *testing.T) { }, } + nameNever := &ast.Name{ + Parts: []ast.Vertex{ + &ast.NamePart{Value: []byte("never")}, + }, + } + function := &ast.StmtFunction{ Name: &ast.Identifier{Value: []byte("bar")}, Params: []ast.Vertex{ @@ -912,6 +918,12 @@ func TestDoNotResolveReservedNames(t *testing.T) { Name: &ast.Identifier{Value: []byte("Mixed")}, }, }, + &ast.Parameter{ + Type: nameNever, + Var: &ast.ExprVariable{ + Name: &ast.Identifier{Value: []byte("Never")}, + }, + }, }, } @@ -938,6 +950,7 @@ func TestDoNotResolveReservedNames(t *testing.T) { nameIterable: "iterable", nameObject: "object", nameMixed: "mixed", + nameNever: "never", } nsResolver := nsresolver.NewNamespaceResolver()