From 4db3dde522af4d6217ae152e8ee035b5e178bbbd Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Tue, 8 Mar 2016 17:30:51 -0800 Subject: [PATCH] cmd/compile: small cleanups for structargs Suggested by Dave Cheney in golang.org/cl/20405. Change-Id: I581c11ae80034cb6ebef3de976e8ae9484472322 Reviewed-on: https://go-review.googlesource.com/20453 Reviewed-by: Dave Cheney Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/subr.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index b2647175cb..f075ee4293 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -1877,25 +1877,20 @@ func expandmeth(t *Type) { } // Given funarg struct list, return list of ODCLFIELD Node fn args. -func structargs(tl **Type, mustname int) []*Node { - var a *Node - var n *Node - var buf string - +func structargs(tl *Type, mustname bool) []*Node { var args []*Node gen := 0 - for t, it := IterFields(*tl); t != nil; t = it.Next() { - n = nil - if mustname != 0 && (t.Sym == nil || t.Sym.Name == "_") { + for t, it := IterFields(tl); t != nil; t = it.Next() { + var n *Node + if mustname && (t.Sym == nil || t.Sym.Name == "_") { // invent a name so that we can refer to it in the trampoline - buf = fmt.Sprintf(".anon%d", gen) + buf := fmt.Sprintf(".anon%d", gen) gen++ - n = newname(Lookup(buf)) } else if t.Sym != nil { n = newname(t.Sym) } - a = Nod(ODCLFIELD, n, typenod(t.Type)) + a := Nod(ODCLFIELD, n, typenod(t.Type)) a.Isddd = t.Isddd if n != nil { n.Isddd = t.Isddd @@ -1949,8 +1944,8 @@ func genwrapper(rcvr *Type, method *Type, newnam *Sym, iface int) { this := Nod(ODCLFIELD, newname(Lookup(".this")), typenod(rcvr)) this.Left.Name.Param.Ntype = this.Right - in := structargs(method.Type.ParamsP(), 1) - out := structargs(method.Type.ResultsP(), 0) + in := structargs(method.Type.Params(), true) + out := structargs(method.Type.Results(), false) t := Nod(OTFUNC, nil, nil) l := []*Node{this} -- 2.48.1