mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: rename strlit, Bool, and Int64 *Node accessors
The Node type has shortcuts to access bool and int Values:
func (n *Node) Int64() int64
for n.Val().U.(*Mpint).Int64()
func (n *Node) Bool() bool
for n.Val().U.(bool)
I was convinced we didn't have one for string literal nodes, until I
noticed that we do, it's just called strlit, it's not a method, and
it's later in the file:
func strlit(n *Node) string
This change, for consistency:
- Renames strlit to StringVal and makes it a *Node method
- Renames Bool and Int64 to BoolVal and Int64Val
- Moves StringVal near the other two
Change-Id: I18e635384c35eb3a238fd52b1ccd322b1a74d733
Reviewed-on: https://go-review.googlesource.com/c/go/+/261361
Trust: Alberto Donizetti <alb.donizetti@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
7c58ef732e
commit
e2931612b0
10 changed files with 72 additions and 69 deletions
|
|
@ -128,7 +128,7 @@ func (s *InitSchedule) staticcopy(l *Node, r *Node) bool {
|
|||
case OSLICELIT:
|
||||
// copy slice
|
||||
a := s.inittemps[r]
|
||||
slicesym(l, a, r.Right.Int64())
|
||||
slicesym(l, a, r.Right.Int64Val())
|
||||
return true
|
||||
|
||||
case OARRAYLIT, OSTRUCTLIT:
|
||||
|
|
@ -205,7 +205,7 @@ func (s *InitSchedule) staticassign(l *Node, r *Node) bool {
|
|||
|
||||
case OSTR2BYTES:
|
||||
if l.Class() == PEXTERN && r.Left.Op == OLITERAL {
|
||||
sval := strlit(r.Left)
|
||||
sval := r.Left.StringVal()
|
||||
slicebytes(l, sval)
|
||||
return true
|
||||
}
|
||||
|
|
@ -213,7 +213,7 @@ func (s *InitSchedule) staticassign(l *Node, r *Node) bool {
|
|||
case OSLICELIT:
|
||||
s.initplan(r)
|
||||
// Init slice.
|
||||
bound := r.Right.Int64()
|
||||
bound := r.Right.Int64Val()
|
||||
ta := types.NewArray(r.Type.Elem(), bound)
|
||||
ta.SetNoalg(true)
|
||||
a := staticname(ta)
|
||||
|
|
@ -413,7 +413,7 @@ func getdyn(n *Node, top bool) initGenType {
|
|||
if !top {
|
||||
return initDynamic
|
||||
}
|
||||
if n.Right.Int64()/4 > int64(n.List.Len()) {
|
||||
if n.Right.Int64Val()/4 > int64(n.List.Len()) {
|
||||
// <25% of entries have explicit values.
|
||||
// Very rough estimation, it takes 4 bytes of instructions
|
||||
// to initialize 1 byte of result. So don't use a static
|
||||
|
|
@ -589,12 +589,12 @@ func isSmallSliceLit(n *Node) bool {
|
|||
|
||||
r := n.Right
|
||||
|
||||
return smallintconst(r) && (n.Type.Elem().Width == 0 || r.Int64() <= smallArrayBytes/n.Type.Elem().Width)
|
||||
return smallintconst(r) && (n.Type.Elem().Width == 0 || r.Int64Val() <= smallArrayBytes/n.Type.Elem().Width)
|
||||
}
|
||||
|
||||
func slicelit(ctxt initContext, n *Node, var_ *Node, init *Nodes) {
|
||||
// make an array type corresponding the number of elements we have
|
||||
t := types.NewArray(n.Type.Elem(), n.Right.Int64())
|
||||
t := types.NewArray(n.Type.Elem(), n.Right.Int64Val())
|
||||
dowidth(t)
|
||||
|
||||
if ctxt == inNonInitFunction {
|
||||
|
|
@ -993,7 +993,7 @@ func oaslit(n *Node, init *Nodes) bool {
|
|||
|
||||
func getlit(lit *Node) int {
|
||||
if smallintconst(lit) {
|
||||
return int(lit.Int64())
|
||||
return int(lit.Int64Val())
|
||||
}
|
||||
return -1
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue