]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: use stringer on types.EType
authorDaniel Martí <mvdan@mvdan.cc>
Sun, 12 Nov 2017 16:55:11 +0000 (16:55 +0000)
committerRobert Griesemer <gri@golang.org>
Mon, 13 Nov 2017 00:35:25 +0000 (00:35 +0000)
Another one that is possible thanks to the new -trimprefix stringer
flag.

The only subtle difference is that, in the previous version, some values
such as TUNSAFEPTR were stringified as "TUNSAFEPTR" instead of
"UNSAFEPTR". The new String method is always consistent in removing the
"T" prefix.

Passes toolstash -cmp on std cmd.

Change-Id: I68407f391795403dfcbbfa68c813018c0235bbb5
Reviewed-on: https://go-review.googlesource.com/77250
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Marvin Stenger <marvin.stenger94@gmail.com>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/types/etype_string.go [new file with mode: 0644]
src/cmd/compile/internal/types/type.go
src/cmd/compile/internal/types/utils.go

diff --git a/src/cmd/compile/internal/types/etype_string.go b/src/cmd/compile/internal/types/etype_string.go
new file mode 100644 (file)
index 0000000..acb1011
--- /dev/null
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type EType -trimprefix T"; DO NOT EDIT.
+
+package types
+
+import "fmt"
+
+const _EType_name = "xxxINT8UINT8INT16UINT16INT32UINT32INT64UINT64INTUINTUINTPTRCOMPLEX64COMPLEX128FLOAT32FLOAT64BOOLPTR32PTR64FUNCSLICEARRAYSTRUCTCHANMAPINTERFORWANYSTRINGUNSAFEPTRIDEALNILBLANKFUNCARGSCHANARGSDDDFIELDSSATUPLENTYPE"
+
+var _EType_index = [...]uint8{0, 3, 7, 12, 17, 23, 28, 34, 39, 45, 48, 52, 59, 68, 78, 85, 92, 96, 101, 106, 110, 115, 120, 126, 130, 133, 138, 142, 145, 151, 160, 165, 168, 173, 181, 189, 197, 200, 205, 210}
+
+func (i EType) String() string {
+       if i >= EType(len(_EType_index)-1) {
+               return fmt.Sprintf("EType(%d)", i)
+       }
+       return _EType_name[_EType_index[i]:_EType_index[i+1]]
+}
index 44cdabcb30d5cfaa9a24e3ab27f369776b02f226..e62d324cdee225a66e2592299842e8288c14561e 100644 (file)
@@ -15,11 +15,13 @@ import (
 // TODO(gri) try to eliminate soon
 type Node struct{ _ int }
 
+//go:generate stringer -type EType -trimprefix T
+
 // EType describes a kind of type.
 type EType uint8
 
 const (
-       Txxx = iota
+       Txxx EType = iota
 
        TINT8
        TUINT8
index 796cd449de4d85b3b5b6609c177f152c02b3e934..0eac402f8e0d71660ccabca48c40ac9bd45e9374 100644 (file)
@@ -76,51 +76,3 @@ func (f *bitset8) set(mask uint8, b bool) {
                *(*uint8)(f) &^= mask
        }
 }
-
-var etnames = []string{
-       Txxx:        "Txxx",
-       TINT:        "INT",
-       TUINT:       "UINT",
-       TINT8:       "INT8",
-       TUINT8:      "UINT8",
-       TINT16:      "INT16",
-       TUINT16:     "UINT16",
-       TINT32:      "INT32",
-       TUINT32:     "UINT32",
-       TINT64:      "INT64",
-       TUINT64:     "UINT64",
-       TUINTPTR:    "UINTPTR",
-       TFLOAT32:    "FLOAT32",
-       TFLOAT64:    "FLOAT64",
-       TCOMPLEX64:  "COMPLEX64",
-       TCOMPLEX128: "COMPLEX128",
-       TBOOL:       "BOOL",
-       TPTR32:      "PTR32",
-       TPTR64:      "PTR64",
-       TFUNC:       "FUNC",
-       TARRAY:      "ARRAY",
-       TSLICE:      "SLICE",
-       TSTRUCT:     "STRUCT",
-       TCHAN:       "CHAN",
-       TMAP:        "MAP",
-       TINTER:      "INTER",
-       TFORW:       "FORW",
-       TSTRING:     "STRING",
-       TUNSAFEPTR:  "TUNSAFEPTR",
-       TANY:        "ANY",
-       TIDEAL:      "TIDEAL",
-       TNIL:        "TNIL",
-       TBLANK:      "TBLANK",
-       TFUNCARGS:   "TFUNCARGS",
-       TCHANARGS:   "TCHANARGS",
-       TDDDFIELD:   "TDDDFIELD",
-       TSSA:        "TSSA",
-       TTUPLE:      "TTUPLE",
-}
-
-func (et EType) String() string {
-       if int(et) < len(etnames) && etnames[et] != "" {
-               return etnames[et]
-       }
-       return fmt.Sprintf("E-%d", et)
-}