mirror of
https://github.com/golang/go
synced 2024-11-26 05:48:05 -07:00
[dev.regabi] cmd/compile: simplify fmtmap
The format map is going to keep growing as we add more use of concrete node types. Stop that by reporting all Node implementations as Node. Also, there's little point to reporting uses of %v, %p, %T, nor to reporting formatting of basic types like int and []byte. Remove those too. (Vet takes care of mistakes involving basic types now.) Passes buildall w/ toolstash -cmp. Change-Id: Ia9fb39b401c29bf0c76ffebaa24836c70acd773f Reviewed-on: https://go-review.googlesource.com/c/go/+/275781 Trust: Russ Cox <rsc@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
6ea2b8c54c
commit
61889ba680
@ -125,6 +125,12 @@ func TestFormats(t *testing.T) {
|
|||||||
typ := p.types[index]
|
typ := p.types[index]
|
||||||
format := typ + " " + in // e.g., "*Node %n"
|
format := typ + " " + in // e.g., "*Node %n"
|
||||||
|
|
||||||
|
// Do not bother reporting basic types, nor %v, %T, %p.
|
||||||
|
// Vet handles basic types, and those three formats apply to all types.
|
||||||
|
if !strings.Contains(typ, ".") || (in == "%v" || in == "%T" || in == "%p") {
|
||||||
|
return in
|
||||||
|
}
|
||||||
|
|
||||||
// check if format is known
|
// check if format is known
|
||||||
out, known := knownFormats[format]
|
out, known := knownFormats[format]
|
||||||
|
|
||||||
@ -413,7 +419,17 @@ func nodeString(n ast.Node) string {
|
|||||||
|
|
||||||
// typeString returns a string representation of n.
|
// typeString returns a string representation of n.
|
||||||
func typeString(typ types.Type) string {
|
func typeString(typ types.Type) string {
|
||||||
return filepath.ToSlash(typ.String())
|
s := filepath.ToSlash(typ.String())
|
||||||
|
|
||||||
|
// Report all the concrete IR types as Node, to shorten fmtmap.
|
||||||
|
const ir = "cmd/compile/internal/ir."
|
||||||
|
if s == "*"+ir+"Name" || s == "*"+ir+"Func" || s == "*"+ir+"Decl" ||
|
||||||
|
s == ir+"Ntype" || s == ir+"Expr" || s == ir+"Stmt" ||
|
||||||
|
strings.HasPrefix(s, "*"+ir) && (strings.HasSuffix(s, "Expr") || strings.HasSuffix(s, "Stmt")) {
|
||||||
|
return "cmd/compile/internal/ir.Node"
|
||||||
|
}
|
||||||
|
|
||||||
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
// stringLit returns the unquoted string value and true if
|
// stringLit returns the unquoted string value and true if
|
||||||
|
@ -21,31 +21,12 @@ package main_test
|
|||||||
// An empty new format means that the format should remain unchanged.
|
// An empty new format means that the format should remain unchanged.
|
||||||
var knownFormats = map[string]string{
|
var knownFormats = map[string]string{
|
||||||
"*bytes.Buffer %s": "",
|
"*bytes.Buffer %s": "",
|
||||||
"*cmd/compile/internal/gc.EscLocation %v": "",
|
|
||||||
"*cmd/compile/internal/ir.Func %+v": "",
|
|
||||||
"*cmd/compile/internal/ir.Func %L": "",
|
|
||||||
"*cmd/compile/internal/ir.Func %v": "",
|
|
||||||
"*cmd/compile/internal/ir.Name %#v": "",
|
|
||||||
"*cmd/compile/internal/ir.Name %+v": "",
|
|
||||||
"*cmd/compile/internal/ir.Name %L": "",
|
|
||||||
"*cmd/compile/internal/ir.Name %v": "",
|
|
||||||
"*cmd/compile/internal/ir.SliceExpr %v": "",
|
|
||||||
"*cmd/compile/internal/ssa.Block %s": "",
|
"*cmd/compile/internal/ssa.Block %s": "",
|
||||||
"*cmd/compile/internal/ssa.Block %v": "",
|
|
||||||
"*cmd/compile/internal/ssa.Func %s": "",
|
"*cmd/compile/internal/ssa.Func %s": "",
|
||||||
"*cmd/compile/internal/ssa.Func %v": "",
|
|
||||||
"*cmd/compile/internal/ssa.Register %s": "",
|
"*cmd/compile/internal/ssa.Register %s": "",
|
||||||
"*cmd/compile/internal/ssa.Register %v": "",
|
|
||||||
"*cmd/compile/internal/ssa.SparseTreeNode %v": "",
|
|
||||||
"*cmd/compile/internal/ssa.Value %s": "",
|
"*cmd/compile/internal/ssa.Value %s": "",
|
||||||
"*cmd/compile/internal/ssa.Value %v": "",
|
|
||||||
"*cmd/compile/internal/ssa.sparseTreeMapEntry %v": "",
|
|
||||||
"*cmd/compile/internal/types.Field %p": "",
|
|
||||||
"*cmd/compile/internal/types.Field %v": "",
|
|
||||||
"*cmd/compile/internal/types.Sym %+v": "",
|
"*cmd/compile/internal/types.Sym %+v": "",
|
||||||
"*cmd/compile/internal/types.Sym %S": "",
|
"*cmd/compile/internal/types.Sym %S": "",
|
||||||
"*cmd/compile/internal/types.Sym %p": "",
|
|
||||||
"*cmd/compile/internal/types.Sym %v": "",
|
|
||||||
"*cmd/compile/internal/types.Type %#L": "",
|
"*cmd/compile/internal/types.Type %#L": "",
|
||||||
"*cmd/compile/internal/types.Type %#v": "",
|
"*cmd/compile/internal/types.Type %#v": "",
|
||||||
"*cmd/compile/internal/types.Type %+v": "",
|
"*cmd/compile/internal/types.Type %+v": "",
|
||||||
@ -53,65 +34,29 @@ var knownFormats = map[string]string{
|
|||||||
"*cmd/compile/internal/types.Type %0S": "",
|
"*cmd/compile/internal/types.Type %0S": "",
|
||||||
"*cmd/compile/internal/types.Type %L": "",
|
"*cmd/compile/internal/types.Type %L": "",
|
||||||
"*cmd/compile/internal/types.Type %S": "",
|
"*cmd/compile/internal/types.Type %S": "",
|
||||||
"*cmd/compile/internal/types.Type %p": "",
|
|
||||||
"*cmd/compile/internal/types.Type %s": "",
|
"*cmd/compile/internal/types.Type %s": "",
|
||||||
"*cmd/compile/internal/types.Type %v": "",
|
|
||||||
"*cmd/internal/obj.Addr %v": "",
|
|
||||||
"*cmd/internal/obj.LSym %v": "",
|
|
||||||
"*math/big.Float %f": "",
|
"*math/big.Float %f": "",
|
||||||
"*math/big.Int %s": "",
|
"*math/big.Int %s": "",
|
||||||
"[16]byte %x": "",
|
|
||||||
"[]*cmd/compile/internal/ir.Name %v": "",
|
|
||||||
"[]*cmd/compile/internal/ssa.Block %v": "",
|
|
||||||
"[]*cmd/compile/internal/ssa.Value %v": "",
|
|
||||||
"[][]string %q": "",
|
|
||||||
"[]byte %s": "",
|
|
||||||
"[]byte %x": "",
|
|
||||||
"[]cmd/compile/internal/ssa.Edge %v": "",
|
|
||||||
"[]cmd/compile/internal/ssa.ID %v": "",
|
|
||||||
"[]cmd/compile/internal/ssa.posetNode %v": "",
|
|
||||||
"[]cmd/compile/internal/ssa.posetUndo %v": "",
|
|
||||||
"[]cmd/compile/internal/syntax.token %s": "",
|
"[]cmd/compile/internal/syntax.token %s": "",
|
||||||
"[]string %v": "",
|
|
||||||
"[]uint32 %v": "",
|
|
||||||
"bool %v": "",
|
|
||||||
"byte %08b": "",
|
|
||||||
"byte %c": "",
|
|
||||||
"byte %q": "",
|
|
||||||
"byte %v": "",
|
|
||||||
"cmd/compile/internal/arm.shift %d": "",
|
"cmd/compile/internal/arm.shift %d": "",
|
||||||
"cmd/compile/internal/gc.initKind %d": "",
|
"cmd/compile/internal/gc.initKind %d": "",
|
||||||
"cmd/compile/internal/gc.itag %v": "",
|
|
||||||
"cmd/compile/internal/ir.Class %d": "",
|
"cmd/compile/internal/ir.Class %d": "",
|
||||||
"cmd/compile/internal/ir.Class %v": "",
|
"cmd/compile/internal/ir.Node %#v": "",
|
||||||
"cmd/compile/internal/ir.Node %+v": "",
|
"cmd/compile/internal/ir.Node %+v": "",
|
||||||
"cmd/compile/internal/ir.Node %L": "",
|
"cmd/compile/internal/ir.Node %L": "",
|
||||||
"cmd/compile/internal/ir.Node %S": "",
|
"cmd/compile/internal/ir.Node %S": "",
|
||||||
"cmd/compile/internal/ir.Node %p": "",
|
|
||||||
"cmd/compile/internal/ir.Node %v": "",
|
|
||||||
"cmd/compile/internal/ir.Nodes %#v": "",
|
"cmd/compile/internal/ir.Nodes %#v": "",
|
||||||
"cmd/compile/internal/ir.Nodes %+v": "",
|
"cmd/compile/internal/ir.Nodes %+v": "",
|
||||||
"cmd/compile/internal/ir.Nodes %.v": "",
|
"cmd/compile/internal/ir.Nodes %.v": "",
|
||||||
"cmd/compile/internal/ir.Nodes %v": "",
|
|
||||||
"cmd/compile/internal/ir.Ntype %v": "",
|
|
||||||
"cmd/compile/internal/ir.Op %#v": "",
|
"cmd/compile/internal/ir.Op %#v": "",
|
||||||
"cmd/compile/internal/ir.Op %+v": "",
|
"cmd/compile/internal/ir.Op %+v": "",
|
||||||
"cmd/compile/internal/ir.Op %v": "",
|
|
||||||
"cmd/compile/internal/ssa.BranchPrediction %d": "",
|
"cmd/compile/internal/ssa.BranchPrediction %d": "",
|
||||||
"cmd/compile/internal/ssa.Edge %v": "",
|
|
||||||
"cmd/compile/internal/ssa.ID %d": "",
|
"cmd/compile/internal/ssa.ID %d": "",
|
||||||
"cmd/compile/internal/ssa.ID %v": "",
|
|
||||||
"cmd/compile/internal/ssa.LocalSlot %s": "",
|
"cmd/compile/internal/ssa.LocalSlot %s": "",
|
||||||
"cmd/compile/internal/ssa.LocalSlot %v": "",
|
|
||||||
"cmd/compile/internal/ssa.Location %s": "",
|
"cmd/compile/internal/ssa.Location %s": "",
|
||||||
"cmd/compile/internal/ssa.Op %s": "",
|
"cmd/compile/internal/ssa.Op %s": "",
|
||||||
"cmd/compile/internal/ssa.Op %v": "",
|
|
||||||
"cmd/compile/internal/ssa.Sym %v": "",
|
|
||||||
"cmd/compile/internal/ssa.ValAndOff %s": "",
|
"cmd/compile/internal/ssa.ValAndOff %s": "",
|
||||||
"cmd/compile/internal/ssa.domain %v": "",
|
|
||||||
"cmd/compile/internal/ssa.flagConstant %s": "",
|
"cmd/compile/internal/ssa.flagConstant %s": "",
|
||||||
"cmd/compile/internal/ssa.posetNode %v": "",
|
|
||||||
"cmd/compile/internal/ssa.posetTestOp %v": "",
|
|
||||||
"cmd/compile/internal/ssa.rbrank %d": "",
|
"cmd/compile/internal/ssa.rbrank %d": "",
|
||||||
"cmd/compile/internal/ssa.regMask %d": "",
|
"cmd/compile/internal/ssa.regMask %d": "",
|
||||||
"cmd/compile/internal/ssa.register %d": "",
|
"cmd/compile/internal/ssa.register %d": "",
|
||||||
@ -119,92 +64,15 @@ var knownFormats = map[string]string{
|
|||||||
"cmd/compile/internal/syntax.Error %q": "",
|
"cmd/compile/internal/syntax.Error %q": "",
|
||||||
"cmd/compile/internal/syntax.Expr %#v": "",
|
"cmd/compile/internal/syntax.Expr %#v": "",
|
||||||
"cmd/compile/internal/syntax.LitKind %d": "",
|
"cmd/compile/internal/syntax.LitKind %d": "",
|
||||||
"cmd/compile/internal/syntax.Node %T": "",
|
|
||||||
"cmd/compile/internal/syntax.Operator %s": "",
|
"cmd/compile/internal/syntax.Operator %s": "",
|
||||||
"cmd/compile/internal/syntax.Pos %s": "",
|
"cmd/compile/internal/syntax.Pos %s": "",
|
||||||
"cmd/compile/internal/syntax.Pos %v": "",
|
|
||||||
"cmd/compile/internal/syntax.position %s": "",
|
"cmd/compile/internal/syntax.position %s": "",
|
||||||
"cmd/compile/internal/syntax.token %q": "",
|
"cmd/compile/internal/syntax.token %q": "",
|
||||||
"cmd/compile/internal/syntax.token %s": "",
|
"cmd/compile/internal/syntax.token %s": "",
|
||||||
"cmd/compile/internal/types.Kind %d": "",
|
"cmd/compile/internal/types.Kind %d": "",
|
||||||
"cmd/compile/internal/types.Kind %s": "",
|
"cmd/compile/internal/types.Kind %s": "",
|
||||||
"cmd/compile/internal/types.Kind %v": "",
|
|
||||||
"cmd/compile/internal/types.Object %v": "",
|
|
||||||
"cmd/internal/obj.ABI %v": "",
|
|
||||||
"error %v": "",
|
|
||||||
"float64 %.2f": "",
|
|
||||||
"float64 %.3f": "",
|
|
||||||
"float64 %g": "",
|
|
||||||
"go/constant.Kind %v": "",
|
|
||||||
"go/constant.Value %#v": "",
|
"go/constant.Value %#v": "",
|
||||||
"go/constant.Value %v": "",
|
|
||||||
"int %#x": "",
|
|
||||||
"int %-12d": "",
|
|
||||||
"int %-6d": "",
|
|
||||||
"int %-8o": "",
|
|
||||||
"int %02d": "",
|
|
||||||
"int %6d": "",
|
|
||||||
"int %c": "",
|
|
||||||
"int %d": "",
|
|
||||||
"int %v": "",
|
|
||||||
"int %x": "",
|
|
||||||
"int16 %d": "",
|
|
||||||
"int16 %x": "",
|
|
||||||
"int32 %#x": "",
|
|
||||||
"int32 %d": "",
|
|
||||||
"int32 %v": "",
|
|
||||||
"int32 %x": "",
|
|
||||||
"int64 %#x": "",
|
|
||||||
"int64 %-10d": "",
|
|
||||||
"int64 %.5d": "",
|
|
||||||
"int64 %d": "",
|
|
||||||
"int64 %v": "",
|
|
||||||
"int64 %x": "",
|
|
||||||
"int8 %d": "",
|
|
||||||
"int8 %v": "",
|
|
||||||
"int8 %x": "",
|
|
||||||
"interface{} %#v": "",
|
|
||||||
"interface{} %T": "",
|
|
||||||
"interface{} %p": "",
|
|
||||||
"interface{} %q": "",
|
|
||||||
"interface{} %s": "",
|
|
||||||
"interface{} %v": "",
|
|
||||||
"map[cmd/compile/internal/ir.Node]*cmd/compile/internal/ssa.Value %v": "",
|
|
||||||
"map[cmd/compile/internal/ir.Node][]cmd/compile/internal/ir.Node %v": "",
|
|
||||||
"map[cmd/compile/internal/ssa.ID]uint32 %v": "",
|
|
||||||
"map[int64]uint32 %v": "",
|
|
||||||
"math/big.Accuracy %s": "",
|
"math/big.Accuracy %s": "",
|
||||||
"reflect.Type %s": "",
|
"reflect.Type %s": "",
|
||||||
"reflect.Type %v": "",
|
|
||||||
"rune %#U": "",
|
|
||||||
"rune %c": "",
|
|
||||||
"rune %q": "",
|
|
||||||
"string %-*s": "",
|
|
||||||
"string %-16s": "",
|
|
||||||
"string %-6s": "",
|
|
||||||
"string %q": "",
|
|
||||||
"string %s": "",
|
|
||||||
"string %v": "",
|
|
||||||
"time.Duration %d": "",
|
"time.Duration %d": "",
|
||||||
"time.Duration %v": "",
|
|
||||||
"uint %04x": "",
|
|
||||||
"uint %5d": "",
|
|
||||||
"uint %d": "",
|
|
||||||
"uint %x": "",
|
|
||||||
"uint16 %d": "",
|
|
||||||
"uint16 %x": "",
|
|
||||||
"uint32 %#U": "",
|
|
||||||
"uint32 %#x": "",
|
|
||||||
"uint32 %d": "",
|
|
||||||
"uint32 %v": "",
|
|
||||||
"uint32 %x": "",
|
|
||||||
"uint64 %08x": "",
|
|
||||||
"uint64 %b": "",
|
|
||||||
"uint64 %d": "",
|
|
||||||
"uint64 %x": "",
|
|
||||||
"uint8 %#x": "",
|
|
||||||
"uint8 %d": "",
|
|
||||||
"uint8 %v": "",
|
|
||||||
"uint8 %x": "",
|
|
||||||
"uintptr %d": "",
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user