mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: eliminate a bunch of IterFields/IterMethods calls
This is an automated rewrite of all the calls of the form:
for f, it := IterFields(t); f != nil; f = it.Next() { ... }
Followup CLs will work on cleaning up the remaining cases.
Change-Id: Ic1005ad45ae0b50c63e815e34e507e2d2644ba1a
Reviewed-on: https://go-review.googlesource.com/20794
Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
517b6131b2
commit
f6bca3f32d
17 changed files with 69 additions and 76 deletions
|
|
@ -241,7 +241,7 @@ func methodfunc(f *Type, receiver *Type) *Type {
|
|||
}
|
||||
|
||||
var d *Node
|
||||
for t, it := IterFields(f.Params()); t != nil; t = it.Next() {
|
||||
for _, t := range f.Params().Fields().Slice() {
|
||||
d = Nod(ODCLFIELD, nil, nil)
|
||||
d.Type = t.Type
|
||||
d.Isddd = t.Isddd
|
||||
|
|
@ -249,7 +249,7 @@ func methodfunc(f *Type, receiver *Type) *Type {
|
|||
}
|
||||
|
||||
var out []*Node
|
||||
for t, it := IterFields(f.Results()); t != nil; t = it.Next() {
|
||||
for _, t := range f.Results().Fields().Slice() {
|
||||
d = Nod(ODCLFIELD, nil, nil)
|
||||
d.Type = t.Type
|
||||
out = append(out, d)
|
||||
|
|
@ -356,7 +356,7 @@ func methods(t *Type) []*Sig {
|
|||
// imethods returns the methods of the interface type t, sorted by name.
|
||||
func imethods(t *Type) []*Sig {
|
||||
var methods []*Sig
|
||||
for f, it := IterFields(t); f != nil; f = it.Next() {
|
||||
for _, f := range t.Fields().Slice() {
|
||||
if f.Type.Etype != TFUNC || f.Sym == nil {
|
||||
continue
|
||||
}
|
||||
|
|
@ -590,7 +590,7 @@ func haspointers(t *Type) bool {
|
|||
|
||||
case TSTRUCT:
|
||||
ret = false
|
||||
for t1, it := IterFields(t); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Fields().Slice() {
|
||||
if haspointers(t1.Type) {
|
||||
ret = true
|
||||
break
|
||||
|
|
@ -650,7 +650,7 @@ func typeptrdata(t *Type) int64 {
|
|||
case TSTRUCT:
|
||||
// Find the last field that has pointers.
|
||||
var lastPtrField *Field
|
||||
for t1, it := IterFields(t); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Fields().Slice() {
|
||||
if haspointers(t1.Type) {
|
||||
lastPtrField = t1
|
||||
}
|
||||
|
|
@ -883,7 +883,7 @@ func isreflexive(t *Type) bool {
|
|||
return isreflexive(t.Type)
|
||||
|
||||
case TSTRUCT:
|
||||
for t1, it := IterFields(t); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Fields().Slice() {
|
||||
if !isreflexive(t1.Type) {
|
||||
return false
|
||||
}
|
||||
|
|
@ -933,7 +933,7 @@ func needkeyupdate(t *Type) bool {
|
|||
return needkeyupdate(t.Type)
|
||||
|
||||
case TSTRUCT:
|
||||
for t1, it := IterFields(t); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Fields().Slice() {
|
||||
if needkeyupdate(t1.Type) {
|
||||
return true
|
||||
}
|
||||
|
|
@ -1028,15 +1028,15 @@ ok:
|
|||
ot = dextratype(s, ot, t, 0)
|
||||
|
||||
case TFUNC:
|
||||
for t1, it := IterFields(t.Recvs()); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Recvs().Fields().Slice() {
|
||||
dtypesym(t1.Type)
|
||||
}
|
||||
isddd := false
|
||||
for t1, it := IterFields(t.Params()); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Params().Fields().Slice() {
|
||||
isddd = t1.Isddd
|
||||
dtypesym(t1.Type)
|
||||
}
|
||||
for t1, it := IterFields(t.Results()); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Results().Fields().Slice() {
|
||||
dtypesym(t1.Type)
|
||||
}
|
||||
|
||||
|
|
@ -1056,13 +1056,13 @@ ok:
|
|||
ot = dextratype(s, ot, t, dataAdd)
|
||||
|
||||
// Array of rtype pointers follows funcType.
|
||||
for t1, it := IterFields(t.Recvs()); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Recvs().Fields().Slice() {
|
||||
ot = dsymptr(s, ot, dtypesym(t1.Type), 0)
|
||||
}
|
||||
for t1, it := IterFields(t.Params()); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Params().Fields().Slice() {
|
||||
ot = dsymptr(s, ot, dtypesym(t1.Type), 0)
|
||||
}
|
||||
for t1, it := IterFields(t.Results()); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Results().Fields().Slice() {
|
||||
ot = dsymptr(s, ot, dtypesym(t1.Type), 0)
|
||||
}
|
||||
|
||||
|
|
@ -1142,7 +1142,7 @@ ok:
|
|||
case TSTRUCT:
|
||||
n := 0
|
||||
|
||||
for t1, it := IterFields(t); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Fields().Slice() {
|
||||
dtypesym(t1.Type)
|
||||
n++
|
||||
}
|
||||
|
|
@ -1155,7 +1155,7 @@ ok:
|
|||
dataAdd := n * structfieldSize()
|
||||
ot = dextratype(s, ot, t, dataAdd)
|
||||
|
||||
for t1, it := IterFields(t); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Fields().Slice() {
|
||||
// ../../../../runtime/type.go:/structField
|
||||
if t1.Sym != nil && t1.Embedded == 0 {
|
||||
ot = dgostringptr(s, ot, t1.Sym.Name)
|
||||
|
|
@ -1521,7 +1521,7 @@ func (p *GCProg) emit(t *Type, offset int64) {
|
|||
p.w.Repeat(elem.Width/int64(Widthptr), count-1)
|
||||
|
||||
case TSTRUCT:
|
||||
for t1, it := IterFields(t); t1 != nil; t1 = it.Next() {
|
||||
for _, t1 := range t.Fields().Slice() {
|
||||
p.emit(t1.Type, offset+t1.Width)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue