Convert remaining uses to typecheckslice.
Passes toolstash -cmp.
Change-Id: I6ed0877386fb6c0b036e8ee5a228433343855abd
Reviewed-on: https://go-review.googlesource.com/20905
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Dave Cheney <dave@cheney.net>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Curfn = fn
fn.Func.Dupok = true
typecheck(&fn, Etop)
- typechecklist(fn.Nbody.Slice(), Etop)
+ typecheckslice(fn.Nbody.Slice(), Etop)
Curfn = nil
popdcl()
testdclstack()
Curfn = fn
fn.Func.Dupok = true
typecheck(&fn, Etop)
- typechecklist(fn.Nbody.Slice(), Etop)
+ typecheckslice(fn.Nbody.Slice(), Etop)
Curfn = nil
popdcl()
testdclstack()
Curfn = func_
olddd := decldepth
decldepth = 1
- typechecklist(func_.Nbody.Slice(), Etop)
+ typecheckslice(func_.Nbody.Slice(), Etop)
decldepth = olddd
Curfn = oldfn
}
savefn := Curfn
Curfn = fn
- typechecklist(fn.Func.Inl.Slice(), Etop)
+ typecheckslice(fn.Func.Inl.Slice(), Etop)
Curfn = savefn
safemode = save_safemode
m.Ninit.Append(as)
}
- typechecklist(m.Ninit.Slice(), Etop)
+ typecheckslice(m.Ninit.Slice(), Etop)
typecheck(&m, Etop)
// dump("Return after substitution", m);
Curfn = xtop[i]
decldepth = 1
saveerrors()
- typechecklist(Curfn.Nbody.Slice(), Etop)
+ typecheckslice(Curfn.Nbody.Slice(), Etop)
checkreturn(Curfn)
if nerrors != 0 {
Curfn.Nbody.Set(nil) // type errors; do not compile
}
decldepth++
- typechecklist(n.Nbody.Slice(), Etop)
+ typecheckslice(n.Nbody.Slice(), Etop)
decldepth--
}
}
n.Op = OFOR
- typechecklist(init, Etop)
+ typecheckslice(init, Etop)
n.Ninit.Append(init...)
- typechecklist(n.Left.Ninit.Slice(), Etop)
+ typecheckslice(n.Left.Ninit.Slice(), Etop)
typecheck(&n.Left, Erv)
typecheck(&n.Right, Etop)
typecheckslice(body, Etop)
n.Nbody.Append(v1)
typecheck(&n.Left, Erv)
- typechecklist(n.Nbody.Slice(), Etop)
+ typecheckslice(n.Nbody.Slice(), Etop)
walkstmt(&n)
return true
}
var def *Node
lno := setlineno(sel)
count := 0
- typechecklist(sel.Ninit.Slice(), Etop)
+ typecheckslice(sel.Ninit.Slice(), Etop)
for _, n1 := range sel.List.Slice() {
count++
ncase = n1
}
}
- typechecklist(ncase.Nbody.Slice(), Etop)
+ typecheckslice(ncase.Nbody.Slice(), Etop)
}
sel.Xoffset = int64(count)
fn.Func.Dupok = true
}
typecheck(&fn, Etop)
- typechecklist(fn.Nbody.Slice(), Etop)
+ typecheckslice(fn.Nbody.Slice(), Etop)
inlcalls(fn)
escAnalyze([]*Node{fn}, false)
// typecheckswitch typechecks a switch statement.
func typecheckswitch(n *Node) {
lno := lineno
- typechecklist(n.Ninit.Slice(), Etop)
+ typecheckslice(n.Ninit.Slice(), Etop)
var nilonly string
var top int
}
}
- typechecklist(ncase.Nbody.Slice(), Etop)
+ typecheckslice(ncase.Nbody.Slice(), Etop)
}
lineno = lno
return n
}
-func typechecklist(l []*Node, top int) {
- for i := range l {
- typecheck(&l[i], top)
- }
-}
-
func typecheckslice(l []*Node, top int) {
for i := range l {
typecheck(&l[i], top)
if n.List.Len() == 1 && !n.Isddd {
typecheck(n.List.Addr(0), Erv|Efnstruct)
} else {
- typechecklist(n.List.Slice(), Erv)
+ typecheckslice(n.List.Slice(), Erv)
}
t := l.Type
if t == nil {
var r *Node
var l *Node
if n.List.Len() == 1 {
- typechecklist(n.List.Slice(), Efnstruct)
+ typecheckslice(n.List.Slice(), Efnstruct)
if n.List.First().Op != OCALLFUNC && n.List.First().Op != OCALLMETH {
Yyerror("invalid operation: complex expects two arguments")
n.Type = nil
}
ok |= Etop
- typechecklist(args.Slice(), Erv)
+ typecheckslice(args.Slice(), Erv)
l := args.First()
r := args.Second()
if l.Type != nil && l.Type.Etype != TMAP {
if args.Len() == 1 && !n.Isddd {
typecheck(args.Addr(0), Erv|Efnstruct)
} else {
- typechecklist(args.Slice(), Erv)
+ typecheckslice(args.Slice(), Erv)
}
t := args.First().Type
case OPRINT, OPRINTN:
ok |= Etop
- typechecklist(n.List.Slice(), Erv|Eindir) // Eindir: address does not escape
+ typecheckslice(n.List.Slice(), Erv|Eindir) // Eindir: address does not escape
ls := n.List.Slice()
for i1, n1 := range ls {
// Special case for print: int constant is int64, not int.
case OFOR:
ok |= Etop
- typechecklist(n.Ninit.Slice(), Etop)
+ typecheckslice(n.Ninit.Slice(), Etop)
decldepth++
typecheck(&n.Left, Erv)
if n.Left != nil {
}
}
typecheck(&n.Right, Etop)
- typechecklist(n.Nbody.Slice(), Etop)
+ typecheckslice(n.Nbody.Slice(), Etop)
decldepth--
break OpSwitch
case OIF:
ok |= Etop
- typechecklist(n.Ninit.Slice(), Etop)
+ typecheckslice(n.Ninit.Slice(), Etop)
typecheck(&n.Left, Erv)
if n.Left != nil {
t := n.Left.Type
Yyerror("non-bool %v used as if condition", Nconv(n.Left, FmtLong))
}
}
- typechecklist(n.Nbody.Slice(), Etop)
- typechecklist(n.Rlist.Slice(), Etop)
+ typecheckslice(n.Nbody.Slice(), Etop)
+ typecheckslice(n.Rlist.Slice(), Etop)
break OpSwitch
case ORETURN:
ok |= Etop
if n.List.Len() == 1 {
- typechecklist(n.List.Slice(), Erv|Efnstruct)
+ typecheckslice(n.List.Slice(), Erv|Efnstruct)
} else {
- typechecklist(n.List.Slice(), Erv)
+ typecheckslice(n.List.Slice(), Erv)
}
if Curfn == nil {
Yyerror("return outside function")
case OXCASE:
ok |= Etop
- typechecklist(n.List.Slice(), Erv)
- typechecklist(n.Nbody.Slice(), Etop)
+ typecheckslice(n.List.Slice(), Erv)
+ typecheckslice(n.Nbody.Slice(), Etop)
break OpSwitch
case ODCLFUNC:
if cl > 1 && cr == 1 {
typecheck(n.Rlist.Addr(0), Erv|Efnstruct)
} else {
- typechecklist(n.Rlist.Slice(), Erv)
+ typecheckslice(n.Rlist.Slice(), Erv)
}
checkassignlist(n, n.List)
calls = append(calls, mkcall("printunlock", nil, init))
- typechecklist(calls, Etop)
+ typecheckslice(calls, Etop)
walkexprlist(calls, init)
r = Nod(OEMPTY, nil, nil)
l = append(ln.Slice(), nt)
}
- typechecklist(l, Etop)
+ typecheckslice(l, Etop)
walkstmtlist(l)
init.Append(l...)
return s
}
}
- typechecklist(l, Etop)
+ typecheckslice(l, Etop)
walkstmtlist(l)
init.Append(l...)
return ns
nwid = Nod(OMUL, nwid, Nodintconst(nl.Type.Type.Width))
l = append(l, mkcall1(fn, nil, init, nto, nfrm, nwid))
- typechecklist(l, Etop)
+ typecheckslice(l, Etop)
walkstmtlist(l)
init.Append(l...)
return nlen
funcbody(fn)
typecheck(&fn, Etop)
- typechecklist(fn.Nbody.Slice(), Etop)
+ typecheckslice(fn.Nbody.Slice(), Etop)
xtop = append(xtop, fn)
Curfn = oldfn