create ArgumentList node
This commit is contained in:
@@ -99,11 +99,13 @@ func TestReferenceArgs(t *testing.T) {
|
||||
&name.NamePart{Value: "Foo"},
|
||||
},
|
||||
},
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{
|
||||
Variadic: false,
|
||||
IsReference: false,
|
||||
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
|
||||
ArgumentList: &node.ArgumentList{
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{
|
||||
Variadic: false,
|
||||
IsReference: false,
|
||||
Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -7,15 +7,15 @@ import (
|
||||
|
||||
// FunctionCall node
|
||||
type FunctionCall struct {
|
||||
Function node.Node
|
||||
Arguments []node.Node
|
||||
Function node.Node
|
||||
ArgumentList *node.ArgumentList
|
||||
}
|
||||
|
||||
// NewFunctionCall node constructor
|
||||
func NewFunctionCall(Function node.Node, Arguments []node.Node) *FunctionCall {
|
||||
func NewFunctionCall(Function node.Node, ArgumentList *node.ArgumentList) *FunctionCall {
|
||||
return &FunctionCall{
|
||||
Function,
|
||||
Arguments,
|
||||
ArgumentList,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,13 +36,9 @@ func (n *FunctionCall) Walk(v walker.Visitor) {
|
||||
n.Function.Walk(vv)
|
||||
}
|
||||
|
||||
if n.Arguments != nil {
|
||||
vv := v.GetChildrenVisitor("Arguments")
|
||||
for _, nn := range n.Arguments {
|
||||
if nn != nil {
|
||||
nn.Walk(vv)
|
||||
}
|
||||
}
|
||||
if n.ArgumentList != nil {
|
||||
vv := v.GetChildrenVisitor("ArgumentList")
|
||||
n.ArgumentList.Walk(vv)
|
||||
}
|
||||
|
||||
v.LeaveNode(n)
|
||||
|
||||
@@ -7,17 +7,17 @@ import (
|
||||
|
||||
// MethodCall node
|
||||
type MethodCall struct {
|
||||
Variable node.Node
|
||||
Method node.Node
|
||||
Arguments []node.Node
|
||||
Variable node.Node
|
||||
Method node.Node
|
||||
ArgumentList *node.ArgumentList
|
||||
}
|
||||
|
||||
// NewMethodCall node constructor
|
||||
func NewMethodCall(Variable node.Node, Method node.Node, Arguments []node.Node) *MethodCall {
|
||||
func NewMethodCall(Variable node.Node, Method node.Node, ArgumentList *node.ArgumentList) *MethodCall {
|
||||
return &MethodCall{
|
||||
Variable,
|
||||
Method,
|
||||
Arguments,
|
||||
ArgumentList,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,13 +43,9 @@ func (n *MethodCall) Walk(v walker.Visitor) {
|
||||
n.Method.Walk(vv)
|
||||
}
|
||||
|
||||
if n.Arguments != nil {
|
||||
vv := v.GetChildrenVisitor("Arguments")
|
||||
for _, nn := range n.Arguments {
|
||||
if nn != nil {
|
||||
nn.Walk(vv)
|
||||
}
|
||||
}
|
||||
if n.ArgumentList != nil {
|
||||
vv := v.GetChildrenVisitor("ArgumentList")
|
||||
n.ArgumentList.Walk(vv)
|
||||
}
|
||||
|
||||
v.LeaveNode(n)
|
||||
|
||||
@@ -7,15 +7,15 @@ import (
|
||||
|
||||
// New node
|
||||
type New struct {
|
||||
Class node.Node
|
||||
Arguments []node.Node
|
||||
Class node.Node
|
||||
ArgumentList *node.ArgumentList
|
||||
}
|
||||
|
||||
// NewNew node constructor
|
||||
func NewNew(Class node.Node, Arguments []node.Node) *New {
|
||||
func NewNew(Class node.Node, ArgumentList *node.ArgumentList) *New {
|
||||
return &New{
|
||||
Class,
|
||||
Arguments,
|
||||
ArgumentList,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,13 +36,9 @@ func (n *New) Walk(v walker.Visitor) {
|
||||
n.Class.Walk(vv)
|
||||
}
|
||||
|
||||
if n.Arguments != nil {
|
||||
vv := v.GetChildrenVisitor("Arguments")
|
||||
for _, nn := range n.Arguments {
|
||||
if nn != nil {
|
||||
nn.Walk(vv)
|
||||
}
|
||||
}
|
||||
if n.ArgumentList != nil {
|
||||
vv := v.GetChildrenVisitor("ArgumentList")
|
||||
n.ArgumentList.Walk(vv)
|
||||
}
|
||||
|
||||
v.LeaveNode(n)
|
||||
|
||||
@@ -7,17 +7,17 @@ import (
|
||||
|
||||
// StaticCall node
|
||||
type StaticCall struct {
|
||||
Class node.Node
|
||||
Call node.Node
|
||||
Arguments []node.Node
|
||||
Class node.Node
|
||||
Call node.Node
|
||||
ArgumentList *node.ArgumentList
|
||||
}
|
||||
|
||||
// NewStaticCall node constructor
|
||||
func NewStaticCall(Class node.Node, Call node.Node, Arguments []node.Node) *StaticCall {
|
||||
func NewStaticCall(Class node.Node, Call node.Node, ArgumentList *node.ArgumentList) *StaticCall {
|
||||
return &StaticCall{
|
||||
Class,
|
||||
Call,
|
||||
Arguments,
|
||||
ArgumentList,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,13 +43,9 @@ func (n *StaticCall) Walk(v walker.Visitor) {
|
||||
n.Call.Walk(vv)
|
||||
}
|
||||
|
||||
if n.Arguments != nil {
|
||||
vv := v.GetChildrenVisitor("Arguments")
|
||||
for _, nn := range n.Arguments {
|
||||
if nn != nil {
|
||||
nn.Walk(vv)
|
||||
}
|
||||
}
|
||||
if n.ArgumentList != nil {
|
||||
vv := v.GetChildrenVisitor("ArgumentList")
|
||||
n.ArgumentList.Walk(vv)
|
||||
}
|
||||
|
||||
v.LeaveNode(n)
|
||||
|
||||
@@ -29,7 +29,7 @@ func TestFunctionCall(t *testing.T) {
|
||||
&name.NamePart{Value: "foo"},
|
||||
},
|
||||
},
|
||||
Arguments: []node.Node{},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -58,7 +58,7 @@ func TestFunctionCallRelative(t *testing.T) {
|
||||
&name.NamePart{Value: "foo"},
|
||||
},
|
||||
},
|
||||
Arguments: []node.Node{},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -87,12 +87,14 @@ func TestFunctionFullyQualified(t *testing.T) {
|
||||
&name.NamePart{Value: "foo"},
|
||||
},
|
||||
},
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{
|
||||
Variadic: false,
|
||||
IsReference: false,
|
||||
Expr: &expr.ShortArray{
|
||||
Items: []node.Node{},
|
||||
ArgumentList: &node.ArgumentList{
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{
|
||||
Variadic: false,
|
||||
IsReference: false,
|
||||
Expr: &expr.ShortArray{
|
||||
Items: []node.Node{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -120,12 +122,14 @@ func TestFunctionCallVar(t *testing.T) {
|
||||
&stmt.Expression{
|
||||
Expr: &expr.FunctionCall{
|
||||
Function: &expr.Variable{VarName: &node.Identifier{Value: "foo"}},
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{
|
||||
Variadic: false,
|
||||
IsReference: false,
|
||||
Expr: &expr.Yield{
|
||||
Value: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
|
||||
ArgumentList: &node.ArgumentList{
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{
|
||||
Variadic: false,
|
||||
IsReference: false,
|
||||
Expr: &expr.Yield{
|
||||
Value: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -157,13 +161,15 @@ func TestFunctionCallExprArg(t *testing.T) {
|
||||
&name.NamePart{Value: "ceil"},
|
||||
},
|
||||
},
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{
|
||||
Variadic: false,
|
||||
IsReference: false,
|
||||
Expr: &binary.Div{
|
||||
Left: &expr.Variable{VarName: &node.Identifier{Value: "foo"}},
|
||||
Right: &scalar.Lnumber{Value: "3"},
|
||||
ArgumentList: &node.ArgumentList{
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{
|
||||
Variadic: false,
|
||||
IsReference: false,
|
||||
Expr: &binary.Div{
|
||||
Left: &expr.Variable{VarName: &node.Identifier{Value: "foo"}},
|
||||
Right: &scalar.Lnumber{Value: "3"},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -19,9 +19,9 @@ func TestMethodCall(t *testing.T) {
|
||||
Stmts: []node.Node{
|
||||
&stmt.Expression{
|
||||
Expr: &expr.MethodCall{
|
||||
Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
|
||||
Method: &node.Identifier{Value: "foo"},
|
||||
Arguments: []node.Node{},
|
||||
Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
|
||||
Method: &node.Identifier{Value: "foo"},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -54,7 +54,7 @@ func TestNewRelative(t *testing.T) {
|
||||
&name.NamePart{Value: "Foo"},
|
||||
},
|
||||
},
|
||||
Arguments: []node.Node{},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -83,7 +83,7 @@ func TestNewFullyQualified(t *testing.T) {
|
||||
&name.NamePart{Value: "Foo"},
|
||||
},
|
||||
},
|
||||
Arguments: []node.Node{},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -109,9 +109,11 @@ func TestNewAnonymous(t *testing.T) {
|
||||
Expr: &expr.New{
|
||||
Class: &stmt.Class{
|
||||
PhpDocComment: "",
|
||||
Args: []node.Node{
|
||||
&node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}},
|
||||
&node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}},
|
||||
ArgumentList: &node.ArgumentList{
|
||||
Arguments: []node.Node{
|
||||
&node.Argument{Variadic: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}},
|
||||
&node.Argument{Variadic: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}},
|
||||
},
|
||||
},
|
||||
Stmts: []node.Node{},
|
||||
},
|
||||
|
||||
@@ -26,8 +26,8 @@ func TestStaticCall(t *testing.T) {
|
||||
&name.NamePart{Value: "Foo"},
|
||||
},
|
||||
},
|
||||
Call: &node.Identifier{Value: "bar"},
|
||||
Arguments: []node.Node{},
|
||||
Call: &node.Identifier{Value: "bar"},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -56,8 +56,8 @@ func TestStaticCallRelative(t *testing.T) {
|
||||
&name.NamePart{Value: "Foo"},
|
||||
},
|
||||
},
|
||||
Call: &node.Identifier{Value: "bar"},
|
||||
Arguments: []node.Node{},
|
||||
Call: &node.Identifier{Value: "bar"},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -86,8 +86,8 @@ func TestStaticCallFullyQualified(t *testing.T) {
|
||||
&name.NamePart{Value: "Foo"},
|
||||
},
|
||||
},
|
||||
Call: &node.Identifier{Value: "bar"},
|
||||
Arguments: []node.Node{},
|
||||
Call: &node.Identifier{Value: "bar"},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -116,8 +116,8 @@ func TestStaticCallVar(t *testing.T) {
|
||||
&name.NamePart{Value: "Foo"},
|
||||
},
|
||||
},
|
||||
Call: &expr.Variable{VarName: &node.Identifier{Value: "bar"}},
|
||||
Arguments: []node.Node{},
|
||||
Call: &expr.Variable{VarName: &node.Identifier{Value: "bar"}},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -141,9 +141,9 @@ func TestStaticCallVarVar(t *testing.T) {
|
||||
Stmts: []node.Node{
|
||||
&stmt.Expression{
|
||||
Expr: &expr.StaticCall{
|
||||
Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}},
|
||||
Call: &expr.Variable{VarName: &node.Identifier{Value: "bar"}},
|
||||
Arguments: []node.Node{},
|
||||
Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}},
|
||||
Call: &expr.Variable{VarName: &node.Identifier{Value: "bar"}},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -146,10 +146,10 @@ var nodesToTest = []struct {
|
||||
},
|
||||
{
|
||||
&expr.FunctionCall{
|
||||
Function: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
|
||||
Arguments: []node.Node{&node.Argument{}},
|
||||
Function: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
[]string{"Function", "Arguments"},
|
||||
[]string{"Function", "ArgumentList"},
|
||||
map[string]interface{}{},
|
||||
},
|
||||
{
|
||||
@@ -194,19 +194,19 @@ var nodesToTest = []struct {
|
||||
},
|
||||
{
|
||||
&expr.MethodCall{
|
||||
Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
|
||||
Method: &node.Identifier{Value: "foo"},
|
||||
Arguments: []node.Node{&node.Argument{}},
|
||||
Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}},
|
||||
Method: &node.Identifier{Value: "foo"},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
[]string{"Variable", "Method", "Arguments"},
|
||||
[]string{"Variable", "Method", "ArgumentList"},
|
||||
map[string]interface{}{},
|
||||
},
|
||||
{
|
||||
&expr.New{
|
||||
Class: &name.Name{},
|
||||
Arguments: []node.Node{&node.Argument{}},
|
||||
Class: &name.Name{},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
[]string{"Class", "Arguments"},
|
||||
[]string{"Class", "ArgumentList"},
|
||||
map[string]interface{}{},
|
||||
},
|
||||
{
|
||||
@@ -295,11 +295,11 @@ var nodesToTest = []struct {
|
||||
},
|
||||
{
|
||||
&expr.StaticCall{
|
||||
Class: &name.Name{},
|
||||
Call: &node.Identifier{Value: "foo"},
|
||||
Arguments: []node.Node{&node.Argument{}},
|
||||
Class: &name.Name{},
|
||||
Call: &node.Identifier{Value: "foo"},
|
||||
ArgumentList: &node.ArgumentList{},
|
||||
},
|
||||
[]string{"Class", "Call", "Arguments"},
|
||||
[]string{"Class", "Call", "ArgumentList"},
|
||||
map[string]interface{}{},
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user