From fdf33730e1f84a5f0cd13bcbf2efbdceedab1114 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Sat, 31 Mar 2018 15:53:21 -0700 Subject: [PATCH] cmd/compile: refactor constant node constructors Passes toolstash-check. Change-Id: I6a2d46e69d4d3a06858c80c4ea1ad3f5a58f6956 Reviewed-on: https://go-review.googlesource.com/103859 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/const.go | 1 + src/cmd/compile/internal/gc/subr.go | 28 ++++++++-------------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/cmd/compile/internal/gc/const.go b/src/cmd/compile/internal/gc/const.go index af84005908..8422eec17e 100644 --- a/src/cmd/compile/internal/gc/const.go +++ b/src/cmd/compile/internal/gc/const.go @@ -1246,6 +1246,7 @@ illegal: } } +// nodlit returns a new untyped constant with value v. func nodlit(v Val) *Node { n := nod(OLITERAL, nil, nil) n.SetVal(v) diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index 96c1fc1cca..7354625de0 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -413,21 +413,15 @@ func (x methcmp) Less(i, j int) bool { } func nodintconst(v int64) *Node { - c := nod(OLITERAL, nil, nil) - c.SetAddable(true) - c.SetVal(Val{new(Mpint)}) - c.Val().U.(*Mpint).SetInt64(v) - c.Type = types.Types[TIDEAL] - return c + u := new(Mpint) + u.SetInt64(v) + return nodlit(Val{u}) } func nodfltconst(v *Mpflt) *Node { - c := nod(OLITERAL, nil, nil) - c.SetAddable(true) - c.SetVal(Val{newMpflt()}) - c.Val().U.(*Mpflt).Set(v) - c.Type = types.Types[TIDEAL] - return c + u := newMpflt() + u.Set(v) + return nodlit(Val{u}) } func nodconst(n *Node, t *types.Type, v int64) { @@ -444,17 +438,11 @@ func nodconst(n *Node, t *types.Type, v int64) { } func nodnil() *Node { - c := nodintconst(0) - c.SetVal(Val{new(NilVal)}) - c.Type = types.Types[TNIL] - return c + return nodlit(Val{new(NilVal)}) } func nodbool(b bool) *Node { - c := nodintconst(0) - c.SetVal(Val{b}) - c.Type = types.Idealbool - return c + return nodlit(Val{b}) } func nodstr(s string) *Node { -- 2.50.0