@@ -109,7 +109,7 @@ func newAstNode(n *VimNode, filename string) ast.Node {
109109 ExArg : newExArg (* n .ea , filename ),
110110 Op : n .op ,
111111 Left : newExprNode (n .left , filename ),
112- List : newList ( * n , filename ),
112+ List : newExprs ( n . list , filename ),
113113 Rest : newExprNode (n .rest , filename ),
114114 Right : newExprNode (n .right , filename ),
115115 }
@@ -118,23 +118,23 @@ func newAstNode(n *VimNode, filename string) ast.Node {
118118 return & ast.UnLet {
119119 UnLet : pos ,
120120 ExArg : newExArg (* n .ea , filename ),
121- List : newList ( * n , filename ),
121+ List : newExprs ( n . list , filename ),
122122 }
123123
124124 case NODE_LOCKVAR :
125125 return & ast.LockVar {
126126 LockVar : pos ,
127127 ExArg : newExArg (* n .ea , filename ),
128128 Depth : n .depth ,
129- List : newList ( * n , filename ),
129+ List : newExprs ( n . list , filename ),
130130 }
131131
132132 case NODE_UNLOCKVAR :
133133 return & ast.UnLockVar {
134134 UnLockVar : pos ,
135135 ExArg : newExArg (* n .ea , filename ),
136136 Depth : n .depth ,
137- List : newList ( * n , filename ),
137+ List : newExprs ( n . list , filename ),
138138 }
139139
140140 case NODE_IF :
@@ -203,7 +203,7 @@ func newAstNode(n *VimNode, filename string) ast.Node {
203203 ExArg : newExArg (* n .ea , filename ),
204204 Body : newBody (* n , filename ),
205205 Left : newExprNode (n .left , filename ),
206- List : newList ( * n , filename ),
206+ List : newExprs ( n . list , filename ),
207207 Rest : newExprNode (n .rest , filename ),
208208 Right : newExprNode (n .right , filename ),
209209 EndFor : newAstNode (n .endfor , filename ).(* ast.EndFor ),
@@ -290,7 +290,7 @@ func newAstNode(n *VimNode, filename string) ast.Node {
290290 Start : pos ,
291291 CmdName : n .ea .cmd .name ,
292292 ExArg : newExArg (* n .ea , filename ),
293- Exprs : newList ( * n , filename ),
293+ Exprs : newExprs ( n . list , filename ),
294294 }
295295
296296 case NODE_ECHOHL :
@@ -304,7 +304,7 @@ func newAstNode(n *VimNode, filename string) ast.Node {
304304 return & ast.Execute {
305305 Execute : pos ,
306306 ExArg : newExArg (* n .ea , filename ),
307- Exprs : newList ( * n , filename ),
307+ Exprs : newExprs ( n . list , filename ),
308308 }
309309
310310 case NODE_TERNARY :
@@ -358,14 +358,14 @@ func newAstNode(n *VimNode, filename string) ast.Node {
358358 Lparen : pos ,
359359 Left : newExprNode (n .left , filename ),
360360 Method : newExprNode (n .right .left , filename ),
361- Args : newRlist ( * n .right , filename ),
361+ Args : newExprs ( n .right . rlist , filename ),
362362 }
363363
364364 case NODE_CALL :
365365 return & ast.CallExpr {
366366 Lparen : pos ,
367367 Fun : newExprNode (n .left , filename ),
368- Args : newRlist ( * n , filename ),
368+ Args : newExprs ( n . rlist , filename ),
369369 }
370370
371371 case NODE_DOT :
@@ -474,9 +474,9 @@ func newAstNode(n *VimNode, filename string) ast.Node {
474474 case NODE_HEREDOC :
475475 return & ast.HeredocExpr {
476476 OpPos : pos ,
477- Flags : newRlist ( * n , filename ),
477+ Flags : newExprs ( n . rlist , filename ),
478478 EndMarker : n .op ,
479- Body : newBodyExprs ( * n , filename ),
479+ Body : newExprs ( n . body , filename ),
480480 }
481481
482482 }
@@ -554,14 +554,6 @@ func newBody(n VimNode, filename string) []ast.Statement {
554554 return body
555555}
556556
557- func newBodyExprs (n VimNode , filename string ) []ast.Expr {
558- body := make ([]ast.Expr , len (n .body ))
559- for i , node := range n .body {
560- body [i ] = newExprNode (node , filename )
561- }
562- return body
563- }
564-
565557func newIdents (n VimNode , filename string ) []* ast.Ident {
566558 var idents []* ast.Ident
567559 if n .rlist != nil {
@@ -575,32 +567,6 @@ func newIdents(n VimNode, filename string) []*ast.Ident {
575567 return idents
576568}
577569
578- func newRlist (n VimNode , filename string ) []ast.Expr {
579- var exprs []ast.Expr
580- if n .rlist != nil {
581- exprs = make ([]ast.Expr , 0 , len (n .rlist ))
582- }
583- for _ , node := range n .rlist {
584- if node != nil { // conservative
585- exprs = append (exprs , newExprNode (node , filename ))
586- }
587- }
588- return exprs
589- }
590-
591- func newList (n VimNode , filename string ) []ast.Expr {
592- var list []ast.Expr
593- if n .list != nil {
594- list = make ([]ast.Expr , 0 , len (n .list ))
595- }
596- for _ , node := range n .list {
597- if node != nil { // conservative
598- list = append (list , newExprNode (node , filename ))
599- }
600- }
601- return list
602- }
603-
604570func newExprs (xs []* VimNode , filename string ) []ast.Expr {
605571 var list []ast.Expr
606572 if xs != nil {
0 commit comments