1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

parser/checker/gen: update call args to use ast.CallArg

This commit is contained in:
Joe Conigliaro
2020-03-14 21:11:43 +11:00
parent 6752fed9f2
commit cc338df77f
8 changed files with 53 additions and 62 deletions

View File

@@ -13,7 +13,7 @@ pub fn (p mut Parser) call_expr(is_c bool, mod string) ast.CallExpr {
name := p.check_name()
fn_name := if is_c { 'C.$name' } else if mod.len > 0 { '${mod}.$name' } else { name }
p.check(.lpar)
args,muts := p.call_args()
args := p.call_args()
mut or_stmts := []ast.Stmt
if p.tok.kind == .key_orelse {
p.next()
@@ -22,9 +22,7 @@ pub fn (p mut Parser) call_expr(is_c bool, mod string) ast.CallExpr {
node := ast.CallExpr{
name: fn_name
args: args
muts: muts
// tok: tok
pos: tok.position()
is_c: is_c
or_block: ast.OrExpr{
@@ -34,25 +32,25 @@ pub fn (p mut Parser) call_expr(is_c bool, mod string) ast.CallExpr {
return node
}
pub fn (p mut Parser) call_args() ([]ast.Expr,[]bool) {
mut args := []ast.Expr
mut muts := []bool
pub fn (p mut Parser) call_args() []ast.CallArg {
mut args := []ast.CallArg
for p.tok.kind != .rpar {
mut is_mut := false
if p.tok.kind == .key_mut {
p.check(.key_mut)
muts << true
}
else {
muts << false
is_mut = true
}
e := p.expr(0)
args << e
args << ast.CallArg{
is_mut: is_mut
expr: e
}
if p.tok.kind != .rpar {
p.check(.comma)
}
}
p.check(.rpar)
return args,muts
return args
}
fn (p mut Parser) fn_decl() ast.FnDecl {

View File

@@ -891,7 +891,7 @@ fn (p mut Parser) dot_expr(left ast.Expr) ast.Expr {
pos := p.tok.position()
if p.tok.kind == .lpar {
p.next()
args,muts := p.call_args()
args := p.call_args()
mut or_stmts := []ast.Stmt
if p.tok.kind == .key_orelse {
p.next()
@@ -901,7 +901,6 @@ fn (p mut Parser) dot_expr(left ast.Expr) ast.Expr {
expr: left
name: field_name
args: args
muts: muts
pos: pos
or_block: ast.OrExpr{
stmts: or_stmts