@@ -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