mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: change parser, racewalk, range to use nodeSeq
Passes toolstash -cmp. Update #14473. Change-Id: I0809c6b88643f04c7fc503f866ffe25e69f29910 Reviewed-on: https://go-review.googlesource.com/20260 Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
65c4b55aba
commit
72d90d8238
3 changed files with 97 additions and 115 deletions
|
|
@ -606,7 +606,7 @@ func (p *parser) simple_stmt(labelOk, rangeOk bool) *Node {
|
|||
if rangeOk && p.got(LRANGE) {
|
||||
// expr_list '=' LRANGE expr
|
||||
r := Nod(ORANGE, nil, p.expr())
|
||||
r.List = lhs
|
||||
setNodeSeq(&r.List, lhs)
|
||||
r.Etype = 0 // := flag
|
||||
return r
|
||||
}
|
||||
|
|
@ -620,8 +620,8 @@ func (p *parser) simple_stmt(labelOk, rangeOk bool) *Node {
|
|||
}
|
||||
// multiple
|
||||
stmt := Nod(OAS2, nil, nil)
|
||||
stmt.List = lhs
|
||||
stmt.Rlist = rhs
|
||||
setNodeSeq(&stmt.List, lhs)
|
||||
setNodeSeq(&stmt.Rlist, rhs)
|
||||
return stmt
|
||||
|
||||
case LCOLAS:
|
||||
|
|
@ -631,7 +631,7 @@ func (p *parser) simple_stmt(labelOk, rangeOk bool) *Node {
|
|||
if rangeOk && p.got(LRANGE) {
|
||||
// expr_list LCOLAS LRANGE expr
|
||||
r := Nod(ORANGE, nil, p.expr())
|
||||
r.List = lhs
|
||||
setNodeSeq(&r.List, lhs)
|
||||
r.Colas = true
|
||||
colasdefn(lhs, r)
|
||||
return r
|
||||
|
|
@ -716,13 +716,13 @@ func (p *parser) case_(tswitch *Node) *Node {
|
|||
// done in casebody()
|
||||
markdcl() // matching popdcl in caseblock
|
||||
stmt := Nod(OXCASE, nil, nil)
|
||||
stmt.List = cases
|
||||
setNodeSeq(&stmt.List, cases)
|
||||
if tswitch != nil {
|
||||
if n := tswitch.Left; n != nil {
|
||||
// type switch - declare variable
|
||||
nn := newname(n.Sym)
|
||||
declare(nn, dclcontext)
|
||||
stmt.Rlist = list1(nn)
|
||||
setNodeSeq(&stmt.Rlist, []*Node{nn})
|
||||
|
||||
// keep track of the instances for reporting unused
|
||||
nn.Name.Defn = tswitch
|
||||
|
|
@ -747,10 +747,10 @@ func (p *parser) case_(tswitch *Node) *Node {
|
|||
n = Nod(OAS, cases.N, rhs)
|
||||
} else {
|
||||
n = Nod(OAS2, nil, nil)
|
||||
n.List = cases
|
||||
n.Rlist = list1(rhs)
|
||||
setNodeSeq(&n.List, cases)
|
||||
setNodeSeq(&n.Rlist, []*Node{rhs})
|
||||
}
|
||||
stmt.List = list1(n)
|
||||
setNodeSeq(&stmt.List, []*Node{n})
|
||||
|
||||
p.want(':') // consume ':' after declaring select cases for correct lineno
|
||||
return stmt
|
||||
|
|
@ -766,7 +766,7 @@ func (p *parser) case_(tswitch *Node) *Node {
|
|||
// done in casebody()
|
||||
markdcl() // matching popdcl in caseblock
|
||||
stmt := Nod(OXCASE, nil, nil)
|
||||
stmt.List = list1(colas(cases, list1(rhs), lno))
|
||||
setNodeSeq(&stmt.List, []*Node{colas(cases, list1(rhs), lno)})
|
||||
|
||||
p.want(':') // consume ':' after declaring select cases for correct lineno
|
||||
return stmt
|
||||
|
|
@ -790,7 +790,7 @@ func (p *parser) case_(tswitch *Node) *Node {
|
|||
// type switch - declare variable
|
||||
nn := newname(n.Sym)
|
||||
declare(nn, dclcontext)
|
||||
stmt.Rlist = list1(nn)
|
||||
setNodeSeq(&stmt.Rlist, []*Node{nn})
|
||||
|
||||
// keep track of the instances for reporting unused
|
||||
nn.Name.Defn = tswitch
|
||||
|
|
@ -914,7 +914,7 @@ func (p *parser) for_header() *Node {
|
|||
}
|
||||
h := Nod(OFOR, nil, nil)
|
||||
if init != nil {
|
||||
h.Ninit = list1(init)
|
||||
setNodeSeq(&h.Ninit, []*Node{init})
|
||||
}
|
||||
h.Left = cond
|
||||
h.Right = post
|
||||
|
|
@ -1017,7 +1017,7 @@ func (p *parser) if_header() *Node {
|
|||
|
||||
init, cond, _ := p.header(false)
|
||||
h := Nod(OIF, nil, nil)
|
||||
h.Ninit = list1(init)
|
||||
setNodeSeq(&h.Ninit, []*Node{init})
|
||||
h.Left = cond
|
||||
return h
|
||||
}
|
||||
|
|
@ -1041,9 +1041,9 @@ func (p *parser) if_stmt() *Node {
|
|||
|
||||
if p.got(LELSE) {
|
||||
if p.tok == LIF {
|
||||
stmt.Rlist = list1(p.if_stmt())
|
||||
setNodeSeq(&stmt.Rlist, []*Node{p.if_stmt()})
|
||||
} else {
|
||||
stmt.Rlist = list1(p.compound_stmt(true))
|
||||
setNodeSeq(&stmt.Rlist, []*Node{p.compound_stmt(true)})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1072,7 +1072,7 @@ func (p *parser) switch_stmt() *Node {
|
|||
tswitch = nil
|
||||
}
|
||||
|
||||
hdr.List = p.caseblock_list(tswitch)
|
||||
setNodeSeq(&hdr.List, p.caseblock_list(tswitch))
|
||||
popdcl()
|
||||
|
||||
return hdr
|
||||
|
|
@ -1086,7 +1086,7 @@ func (p *parser) select_stmt() *Node {
|
|||
|
||||
p.want(LSELECT)
|
||||
hdr := Nod(OSELECT, nil, nil)
|
||||
hdr.List = p.caseblock_list(nil)
|
||||
setNodeSeq(&hdr.List, p.caseblock_list(nil))
|
||||
return hdr
|
||||
}
|
||||
|
||||
|
|
@ -1434,7 +1434,7 @@ loop:
|
|||
|
||||
// call or conversion
|
||||
x = Nod(OCALL, x, nil)
|
||||
x.List = args
|
||||
setNodeSeq(&x.List, args)
|
||||
x.Isddd = ddd
|
||||
|
||||
case '{':
|
||||
|
|
@ -1531,9 +1531,9 @@ func (p *parser) complitexpr() *Node {
|
|||
p.want('{')
|
||||
p.xnest++
|
||||
|
||||
var l *NodeList
|
||||
var l []*Node
|
||||
for p.tok != EOF && p.tok != '}' {
|
||||
l = list(l, p.keyval())
|
||||
l = append(l, p.keyval())
|
||||
if !p.ocomma('}') {
|
||||
break
|
||||
}
|
||||
|
|
@ -1542,7 +1542,7 @@ func (p *parser) complitexpr() *Node {
|
|||
p.xnest--
|
||||
p.want('}')
|
||||
|
||||
n.List = l
|
||||
setNodeSeq(&n.List, l)
|
||||
return n
|
||||
}
|
||||
|
||||
|
|
@ -1684,8 +1684,8 @@ func (p *parser) try_ntype() *Node {
|
|||
result := p.fnres()
|
||||
params = checkarglist(params, 1)
|
||||
t := Nod(OTFUNC, nil, nil)
|
||||
t.List = params
|
||||
t.Rlist = result
|
||||
setNodeSeq(&t.List, params)
|
||||
setNodeSeq(&t.Rlist, result)
|
||||
return t
|
||||
|
||||
case '[':
|
||||
|
|
@ -1809,7 +1809,7 @@ func (p *parser) structtype() *Node {
|
|||
p.want('}')
|
||||
|
||||
t := Nod(OTSTRUCT, nil, nil)
|
||||
t.List = l
|
||||
setNodeSeq(&t.List, l)
|
||||
return t
|
||||
}
|
||||
|
||||
|
|
@ -1821,9 +1821,9 @@ func (p *parser) interfacetype() *Node {
|
|||
|
||||
p.want(LINTERFACE)
|
||||
p.want('{')
|
||||
var l *NodeList
|
||||
var l []*Node
|
||||
for p.tok != EOF && p.tok != '}' {
|
||||
l = list(l, p.interfacedcl())
|
||||
l = append(l, p.interfacedcl())
|
||||
if !p.osemi('}') {
|
||||
break
|
||||
}
|
||||
|
|
@ -1831,7 +1831,7 @@ func (p *parser) interfacetype() *Node {
|
|||
p.want('}')
|
||||
|
||||
t := Nod(OTINTER, nil, nil)
|
||||
t.List = l
|
||||
setNodeSeq(&t.List, l)
|
||||
return t
|
||||
}
|
||||
|
||||
|
|
@ -1897,8 +1897,8 @@ func (p *parser) fndcl(nointerface bool) *Node {
|
|||
}
|
||||
|
||||
t := Nod(OTFUNC, nil, nil)
|
||||
t.List = params
|
||||
t.Rlist = result
|
||||
setNodeSeq(&t.List, params)
|
||||
setNodeSeq(&t.Rlist, result)
|
||||
|
||||
f := Nod(ODCLFUNC, nil, nil)
|
||||
f.Func.Nname = newfuncname(name)
|
||||
|
|
@ -1936,8 +1936,8 @@ func (p *parser) fndcl(nointerface bool) *Node {
|
|||
}
|
||||
|
||||
t := Nod(OTFUNC, rcvr, nil)
|
||||
t.List = params
|
||||
t.Rlist = result
|
||||
setNodeSeq(&t.List, params)
|
||||
setNodeSeq(&t.Rlist, result)
|
||||
|
||||
f := Nod(ODCLFUNC, nil, nil)
|
||||
f.Func.Shortname = newfuncname(name)
|
||||
|
|
@ -2352,8 +2352,8 @@ func (p *parser) indcl() *Node {
|
|||
// without func keyword
|
||||
params = checkarglist(params, 1)
|
||||
t := Nod(OTFUNC, fakethis(), nil)
|
||||
t.List = params
|
||||
t.Rlist = result
|
||||
setNodeSeq(&t.List, params)
|
||||
setNodeSeq(&t.Rlist, result)
|
||||
|
||||
return t
|
||||
}
|
||||
|
|
@ -2502,8 +2502,8 @@ func (p *parser) stmt() *Node {
|
|||
}
|
||||
|
||||
stmt := Nod(ORETURN, nil, nil)
|
||||
stmt.List = results
|
||||
if stmt.List == nil && Curfn != nil {
|
||||
setNodeSeq(&stmt.List, results)
|
||||
if nodeSeqLen(stmt.List) == 0 && Curfn != nil {
|
||||
for _, ln := range Curfn.Func.Dcl {
|
||||
if ln.Class == PPARAM {
|
||||
continue
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue