From 2e1b42a81437ff589775d15228c5f9732b2df1e5 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Wed, 5 Apr 2017 18:52:33 -0700 Subject: [PATCH] cmd/compile/internal/gc: remove a bunch of uses of typenod Passes toolstash-check -all. Change-Id: Ic9eb0c52bedac185ab86cc62207f199d93700344 Reviewed-on: https://go-review.googlesource.com/39795 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/gc/bexport.go | 8 ++++---- src/cmd/compile/internal/gc/bimport.go | 24 +++++++++++++----------- src/cmd/compile/internal/gc/closure.go | 6 +++--- src/cmd/compile/internal/gc/swt.go | 4 ++-- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/cmd/compile/internal/gc/bexport.go b/src/cmd/compile/internal/gc/bexport.go index 960037da75..474b36412a 100644 --- a/src/cmd/compile/internal/gc/bexport.go +++ b/src/cmd/compile/internal/gc/bexport.go @@ -1273,11 +1273,11 @@ func (p *exporter) expr(n *Node) { p.op(ODOTTYPE) p.pos(n) p.expr(n.Left) - if p.bool(n.Right != nil) { - p.expr(n.Right) - } else { - p.typ(n.Type) + if n.Right != nil { + Fatalf("impossible") } + p.bool(false) + p.typ(n.Type) case OINDEX, OINDEXMAP: p.op(OINDEX) diff --git a/src/cmd/compile/internal/gc/bimport.go b/src/cmd/compile/internal/gc/bimport.go index 7b770ff241..5f4121d7b5 100644 --- a/src/cmd/compile/internal/gc/bimport.go +++ b/src/cmd/compile/internal/gc/bimport.go @@ -884,13 +884,11 @@ func (p *importer) node() *Node { // again. Re-introduce explicit uintptr(c) conversion. // (issue 16317). if typ.IsUnsafePtr() { - conv := nod(OCALL, typenod(Types[TUINTPTR]), nil) - conv.List.Set1(n) - n = conv + n = nod(OCONV, n, nil) + n.Type = Types[TUINTPTR] } - conv := nod(OCALL, typenod(typ), nil) - conv.List.Set1(n) - n = conv + n = nod(OCONV, n, nil) + n.Type = typ } return n @@ -963,10 +961,9 @@ func (p *importer) node() *Node { case ODOTTYPE: n := nodl(p.pos(), ODOTTYPE, p.expr(), nil) if p.bool() { - n.Right = p.expr() - } else { - n.Right = typenod(p.typ()) + Fatalf("impossible") } + n.Type = p.typ() return n // case OINDEX, OINDEXMAP, OSLICE, OSLICESTR, OSLICEARR, OSLICE3, OSLICE3ARR: @@ -989,8 +986,13 @@ func (p *importer) node() *Node { // unreachable - mapped to OCONV case below by exporter case OCONV: - n := nodl(p.pos(), OCALL, typenod(p.typ()), nil) - n.List.Set(p.exprList()) + n := nodl(p.pos(), OCONV, nil, nil) + n.Type = p.typ() + exprs := p.exprList() + if len(exprs) != 1 { + Fatalf("impossible") + } + n.Left = exprs[0] return n case OCOPY, OCOMPLEX, OREAL, OIMAG, OAPPEND, OCAP, OCLOSE, ODELETE, OLEN, OMAKE, ONEW, OPANIC, ORECOVER, OPRINT, OPRINTN: diff --git a/src/cmd/compile/internal/gc/closure.go b/src/cmd/compile/internal/gc/closure.go index 5319d1bd6d..99b2678f50 100644 --- a/src/cmd/compile/internal/gc/closure.go +++ b/src/cmd/compile/internal/gc/closure.go @@ -395,7 +395,7 @@ func transformclosure(xfunc *Node) { // Declare variable holding addresses taken from closure // and initialize in entry prologue. addr := newname(lookup("&" + v.Sym.Name)) - addr.Name.Param.Ntype = nod(OIND, typenod(v.Type), nil) + addr.Type = typPtr(v.Type) addr.Class = PAUTO addr.SetUsed(true) addr.Name.Curfn = xfunc @@ -626,10 +626,10 @@ func makepartialcall(fn *Node, t0 *Type, meth *Sym) *Node { xfunc.Func.Dcl = append(xfunc.Func.Dcl, ptr) var body []*Node if rcvrtype.IsPtr() || rcvrtype.IsInterface() { - ptr.Name.Param.Ntype = typenod(rcvrtype) + ptr.Type = rcvrtype body = append(body, nod(OAS, ptr, cv)) } else { - ptr.Name.Param.Ntype = typenod(typPtr(rcvrtype)) + ptr.Type = typPtr(rcvrtype) body = append(body, nod(OAS, ptr, nod(OADDR, cv, nil))) } diff --git a/src/cmd/compile/internal/gc/swt.go b/src/cmd/compile/internal/gc/swt.go index da99d5e218..455957bec1 100644 --- a/src/cmd/compile/internal/gc/swt.go +++ b/src/cmd/compile/internal/gc/swt.go @@ -182,10 +182,10 @@ func typecheckswitch(n *Node) { nvar := ncase.Rlist.First() if ll.Len() == 1 && ll.First().Type != nil && !ll.First().Type.IsKind(TNIL) { // single entry type switch - nvar.Name.Param.Ntype = typenod(ll.First().Type) + nvar.Type = ll.First().Type } else { // multiple entry type switch or default - nvar.Name.Param.Ntype = typenod(n.Type) + nvar.Type = n.Type } nvar = typecheck(nvar, Erv|Easgn) -- 2.48.1