From 6e9960ea632cae58e6f8f494876f45fe05cc10b6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Mart=C3=AD?= Date: Sun, 12 Nov 2017 16:55:11 +0000 Subject: [PATCH] cmd/compile: use stringer on types.EType MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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í TryBot-Result: Gobot Gobot Reviewed-by: Marvin Stenger Reviewed-by: Robert Griesemer --- .../compile/internal/types/etype_string.go | 16 +++++++ src/cmd/compile/internal/types/type.go | 4 +- src/cmd/compile/internal/types/utils.go | 48 ------------------- 3 files changed, 19 insertions(+), 49 deletions(-) create mode 100644 src/cmd/compile/internal/types/etype_string.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 index 0000000000..acb10119f4 --- /dev/null +++ b/src/cmd/compile/internal/types/etype_string.go @@ -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]] +} diff --git a/src/cmd/compile/internal/types/type.go b/src/cmd/compile/internal/types/type.go index 44cdabcb30..e62d324cde 100644 --- a/src/cmd/compile/internal/types/type.go +++ b/src/cmd/compile/internal/types/type.go @@ -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 diff --git a/src/cmd/compile/internal/types/utils.go b/src/cmd/compile/internal/types/utils.go index 796cd449de..0eac402f8e 100644 --- a/src/cmd/compile/internal/types/utils.go +++ b/src/cmd/compile/internal/types/utils.go @@ -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) -} -- 2.48.1