From: Matthew Dempsky Date: Sat, 31 Mar 2018 22:53:21 +0000 (-0700) Subject: cmd/compile: refactor constant node constructors X-Git-Tag: go1.11beta1~1022 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=fdf33730e1f84a5f0cd13bcbf2efbdceedab1114;p=gostls13.git 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 --- 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 {