@@ -107,7 +107,7 @@ func newAstNode(n *VimNode, filename string) ast.Node {
107107 ExArg : newExArg (* n .ea , filename ),
108108 Op : n .op ,
109109 Left : newExprNode (n .left , filename ),
110- List : newList ( * n , filename ),
110+ List : newExprs ( n . list , filename ),
111111 Rest : newExprNode (n .rest , filename ),
112112 Right : newExprNode (n .right , filename ),
113113 }
@@ -116,23 +116,23 @@ func newAstNode(n *VimNode, filename string) ast.Node {
116116 return & ast.UnLet {
117117 UnLet : pos ,
118118 ExArg : newExArg (* n .ea , filename ),
119- List : newList ( * n , filename ),
119+ List : newExprs ( n . list , filename ),
120120 }
121121
122122 case NODE_LOCKVAR :
123123 return & ast.LockVar {
124124 LockVar : pos ,
125125 ExArg : newExArg (* n .ea , filename ),
126126 Depth : n .depth ,
127- List : newList ( * n , filename ),
127+ List : newExprs ( n . list , filename ),
128128 }
129129
130130 case NODE_UNLOCKVAR :
131131 return & ast.UnLockVar {
132132 UnLockVar : pos ,
133133 ExArg : newExArg (* n .ea , filename ),
134134 Depth : n .depth ,
135- List : newList ( * n , filename ),
135+ List : newExprs ( n . list , filename ),
136136 }
137137
138138 case NODE_IF :
@@ -201,7 +201,7 @@ func newAstNode(n *VimNode, filename string) ast.Node {
201201 ExArg : newExArg (* n .ea , filename ),
202202 Body : newBody (* n , filename ),
203203 Left : newExprNode (n .left , filename ),
204- List : newList ( * n , filename ),
204+ List : newExprs ( n . list , filename ),
205205 Rest : newExprNode (n .rest , filename ),
206206 Right : newExprNode (n .right , filename ),
207207 EndFor : newAstNode (n .endfor , filename ).(* ast.EndFor ),
@@ -288,7 +288,7 @@ func newAstNode(n *VimNode, filename string) ast.Node {
288288 Start : pos ,
289289 CmdName : n .ea .cmd .name ,
290290 ExArg : newExArg (* n .ea , filename ),
291- Exprs : newList ( * n , filename ),
291+ Exprs : newExprs ( n . list , filename ),
292292 }
293293
294294 case NODE_ECHOHL :
@@ -302,7 +302,7 @@ func newAstNode(n *VimNode, filename string) ast.Node {
302302 return & ast.Execute {
303303 Execute : pos ,
304304 ExArg : newExArg (* n .ea , filename ),
305- Exprs : newList ( * n , filename ),
305+ Exprs : newExprs ( n . list , filename ),
306306 }
307307
308308 case NODE_TERNARY :
@@ -356,14 +356,14 @@ func newAstNode(n *VimNode, filename string) ast.Node {
356356 Lparen : pos ,
357357 Left : newExprNode (n .left , filename ),
358358 Method : newExprNode (n .right .left , filename ),
359- Args : newRlist ( * n .right , filename ),
359+ Args : newExprs ( n .right . rlist , filename ),
360360 }
361361
362362 case NODE_CALL :
363363 return & ast.CallExpr {
364364 Lparen : pos ,
365365 Fun : newExprNode (n .left , filename ),
366- Args : newRlist ( * n , filename ),
366+ Args : newExprs ( n . rlist , filename ),
367367 }
368368
369369 case NODE_DOT :
@@ -472,9 +472,9 @@ func newAstNode(n *VimNode, filename string) ast.Node {
472472 case NODE_HEREDOC :
473473 return & ast.HeredocExpr {
474474 OpPos : pos ,
475- Flags : newRlist ( * n , filename ),
475+ Flags : newExprs ( n . rlist , filename ),
476476 EndMarker : n .op ,
477- Body : newBodyExprs ( * n , filename ),
477+ Body : newExprs ( n . body , filename ),
478478 }
479479
480480 case NODE_PARENEXPR :
@@ -559,14 +559,6 @@ func newBody(n VimNode, filename string) []ast.Statement {
559559 return body
560560}
561561
562- func newBodyExprs (n VimNode , filename string ) []ast.Expr {
563- body := make ([]ast.Expr , len (n .body ))
564- for i , node := range n .body {
565- body [i ] = newExprNode (node , filename )
566- }
567- return body
568- }
569-
570562func newIdents (n VimNode , filename string ) []* ast.Ident {
571563 var idents []* ast.Ident
572564 if n .rlist != nil {
@@ -580,32 +572,6 @@ func newIdents(n VimNode, filename string) []*ast.Ident {
580572 return idents
581573}
582574
583- func newRlist (n VimNode , filename string ) []ast.Expr {
584- var exprs []ast.Expr
585- if n .rlist != nil {
586- exprs = make ([]ast.Expr , 0 , len (n .rlist ))
587- }
588- for _ , node := range n .rlist {
589- if node != nil { // conservative
590- exprs = append (exprs , newExprNode (node , filename ))
591- }
592- }
593- return exprs
594- }
595-
596- func newList (n VimNode , filename string ) []ast.Expr {
597- var list []ast.Expr
598- if n .list != nil {
599- list = make ([]ast.Expr , 0 , len (n .list ))
600- }
601- for _ , node := range n .list {
602- if node != nil { // conservative
603- list = append (list , newExprNode (node , filename ))
604- }
605- }
606- return list
607- }
608-
609575func newExprs (xs []* VimNode , filename string ) []ast.Expr {
610576 var list []ast.Expr
611577 if xs != nil {
0 commit comments