From 5d92916770ef57aeb2ae2cb556285d5e093c3aa0 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Mon, 23 Jan 2017 13:40:25 -0800 Subject: [PATCH] [dev.typealias] cmd/compile: change Func.Shortname to *Sym A Func's Shortname is just an identifier. No need for an entire ONAME Node. Change-Id: Ie4d397e8d694c907fdf924ce57bd96bdb4aaabca Reviewed-on: https://go-review.googlesource.com/35574 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/gc/dcl.go | 8 ++++---- src/cmd/compile/internal/gc/noder.go | 2 +- src/cmd/compile/internal/gc/obj.go | 2 +- src/cmd/compile/internal/gc/syntax.go | 2 +- src/cmd/compile/internal/gc/typecheck.go | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/cmd/compile/internal/gc/dcl.go b/src/cmd/compile/internal/gc/dcl.go index f934a650bd..a5c50f06dc 100644 --- a/src/cmd/compile/internal/gc/dcl.go +++ b/src/cmd/compile/internal/gc/dcl.go @@ -1163,14 +1163,14 @@ bad: return nil } -func methodname(n, recv *Node) *Node { +func methodname(s *Sym, recv *Node) *Node { star := false if recv.Op == OIND { star = true recv = recv.Left } - return methodname0(n.Sym, star, recv.Sym) + return methodname0(s, star, recv.Sym) } func methodname0(s *Sym, star bool, tsym *Sym) *Node { @@ -1318,7 +1318,7 @@ func funcsym(s *Sym) *Sym { s1 := Pkglookup(s.Name+"·f", s.Pkg) if !Ctxt.Flag_dynlink && s1.Def == nil { s1.Def = newfuncname(s1) - s1.Def.Func.Shortname = newname(s) + s1.Def.Func.Shortname = s funcsyms = append(funcsyms, s1.Def) } s.Fsym = s1 @@ -1336,7 +1336,7 @@ func makefuncsym(s *Sym) { } s1 := funcsym(s) s1.Def = newfuncname(s1) - s1.Def.Func.Shortname = newname(s) + s1.Def.Func.Shortname = s funcsyms = append(funcsyms, s1.Def) } diff --git a/src/cmd/compile/internal/gc/noder.go b/src/cmd/compile/internal/gc/noder.go index 699015488a..0c5957f987 100644 --- a/src/cmd/compile/internal/gc/noder.go +++ b/src/cmd/compile/internal/gc/noder.go @@ -252,7 +252,7 @@ func (p *noder) funcHeader(fun *syntax.FuncDecl) *Node { } else { // Receiver MethodName Signature - f.Func.Shortname = newfuncname(name) + f.Func.Shortname = name f.Func.Nname = methodname(f.Func.Shortname, t.Left.Right) } diff --git a/src/cmd/compile/internal/gc/obj.go b/src/cmd/compile/internal/gc/obj.go index 08ed5604da..6d5f2aa208 100644 --- a/src/cmd/compile/internal/gc/obj.go +++ b/src/cmd/compile/internal/gc/obj.go @@ -213,7 +213,7 @@ func dumpglobls() { } for _, n := range funcsyms { - dsymptr(n.Sym, 0, n.Sym.Def.Func.Shortname.Sym, 0) + dsymptr(n.Sym, 0, n.Sym.Def.Func.Shortname, 0) ggloblsym(n.Sym, int32(Widthptr), obj.DUPOK|obj.RODATA) } diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index 1955a0e42f..0bd877e26a 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -289,7 +289,7 @@ type Param struct { // Func holds Node fields used only with function-like nodes. type Func struct { - Shortname *Node + Shortname *Sym Enter Nodes // for example, allocate and initialize memory for escaping parameters Exit Nodes Cvars Nodes // closure params diff --git a/src/cmd/compile/internal/gc/typecheck.go b/src/cmd/compile/internal/gc/typecheck.go index f18bcfad78..d751610763 100644 --- a/src/cmd/compile/internal/gc/typecheck.go +++ b/src/cmd/compile/internal/gc/typecheck.go @@ -3436,7 +3436,7 @@ func typecheckfunc(n *Node) { t.SetNname(n.Func.Nname) rcvr := t.Recv() if rcvr != nil && n.Func.Shortname != nil { - addmethod(n.Func.Shortname.Sym, t, true, n.Func.Pragma&Nointerface != 0) + addmethod(n.Func.Shortname, t, true, n.Func.Pragma&Nointerface != 0) } } -- 2.48.1