mirror of
https://github.com/golang/go
synced 2024-11-26 03:37:57 -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
|
||||||
|
@ -20,191 +20,59 @@ package main_test
|
|||||||
// An absent entry means that the format is not recognized as valid.
|
// An absent entry means that the format is not recognized as valid.
|
||||||
// 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/ssa.Block %s": "",
|
||||||
"*cmd/compile/internal/ir.Func %+v": "",
|
"*cmd/compile/internal/ssa.Func %s": "",
|
||||||
"*cmd/compile/internal/ir.Func %L": "",
|
"*cmd/compile/internal/ssa.Register %s": "",
|
||||||
"*cmd/compile/internal/ir.Func %v": "",
|
"*cmd/compile/internal/ssa.Value %s": "",
|
||||||
"*cmd/compile/internal/ir.Name %#v": "",
|
"*cmd/compile/internal/types.Sym %+v": "",
|
||||||
"*cmd/compile/internal/ir.Name %+v": "",
|
"*cmd/compile/internal/types.Sym %S": "",
|
||||||
"*cmd/compile/internal/ir.Name %L": "",
|
"*cmd/compile/internal/types.Type %#L": "",
|
||||||
"*cmd/compile/internal/ir.Name %v": "",
|
"*cmd/compile/internal/types.Type %#v": "",
|
||||||
"*cmd/compile/internal/ir.SliceExpr %v": "",
|
"*cmd/compile/internal/types.Type %+v": "",
|
||||||
"*cmd/compile/internal/ssa.Block %s": "",
|
"*cmd/compile/internal/types.Type %-S": "",
|
||||||
"*cmd/compile/internal/ssa.Block %v": "",
|
"*cmd/compile/internal/types.Type %0S": "",
|
||||||
"*cmd/compile/internal/ssa.Func %s": "",
|
"*cmd/compile/internal/types.Type %L": "",
|
||||||
"*cmd/compile/internal/ssa.Func %v": "",
|
"*cmd/compile/internal/types.Type %S": "",
|
||||||
"*cmd/compile/internal/ssa.Register %s": "",
|
"*cmd/compile/internal/types.Type %s": "",
|
||||||
"*cmd/compile/internal/ssa.Register %v": "",
|
"*math/big.Float %f": "",
|
||||||
"*cmd/compile/internal/ssa.SparseTreeNode %v": "",
|
"*math/big.Int %s": "",
|
||||||
"*cmd/compile/internal/ssa.Value %s": "",
|
"[]cmd/compile/internal/syntax.token %s": "",
|
||||||
"*cmd/compile/internal/ssa.Value %v": "",
|
"cmd/compile/internal/arm.shift %d": "",
|
||||||
"*cmd/compile/internal/ssa.sparseTreeMapEntry %v": "",
|
"cmd/compile/internal/gc.initKind %d": "",
|
||||||
"*cmd/compile/internal/types.Field %p": "",
|
"cmd/compile/internal/ir.Class %d": "",
|
||||||
"*cmd/compile/internal/types.Field %v": "",
|
"cmd/compile/internal/ir.Node %#v": "",
|
||||||
"*cmd/compile/internal/types.Sym %+v": "",
|
"cmd/compile/internal/ir.Node %+v": "",
|
||||||
"*cmd/compile/internal/types.Sym %S": "",
|
"cmd/compile/internal/ir.Node %L": "",
|
||||||
"*cmd/compile/internal/types.Sym %p": "",
|
"cmd/compile/internal/ir.Node %S": "",
|
||||||
"*cmd/compile/internal/types.Sym %v": "",
|
"cmd/compile/internal/ir.Nodes %#v": "",
|
||||||
"*cmd/compile/internal/types.Type %#L": "",
|
"cmd/compile/internal/ir.Nodes %+v": "",
|
||||||
"*cmd/compile/internal/types.Type %#v": "",
|
"cmd/compile/internal/ir.Nodes %.v": "",
|
||||||
"*cmd/compile/internal/types.Type %+v": "",
|
"cmd/compile/internal/ir.Op %#v": "",
|
||||||
"*cmd/compile/internal/types.Type %-S": "",
|
"cmd/compile/internal/ir.Op %+v": "",
|
||||||
"*cmd/compile/internal/types.Type %0S": "",
|
"cmd/compile/internal/ssa.BranchPrediction %d": "",
|
||||||
"*cmd/compile/internal/types.Type %L": "",
|
"cmd/compile/internal/ssa.ID %d": "",
|
||||||
"*cmd/compile/internal/types.Type %S": "",
|
"cmd/compile/internal/ssa.LocalSlot %s": "",
|
||||||
"*cmd/compile/internal/types.Type %p": "",
|
"cmd/compile/internal/ssa.Location %s": "",
|
||||||
"*cmd/compile/internal/types.Type %s": "",
|
"cmd/compile/internal/ssa.Op %s": "",
|
||||||
"*cmd/compile/internal/types.Type %v": "",
|
"cmd/compile/internal/ssa.ValAndOff %s": "",
|
||||||
"*cmd/internal/obj.Addr %v": "",
|
"cmd/compile/internal/ssa.flagConstant %s": "",
|
||||||
"*cmd/internal/obj.LSym %v": "",
|
"cmd/compile/internal/ssa.rbrank %d": "",
|
||||||
"*math/big.Float %f": "",
|
"cmd/compile/internal/ssa.regMask %d": "",
|
||||||
"*math/big.Int %s": "",
|
"cmd/compile/internal/ssa.register %d": "",
|
||||||
"[16]byte %x": "",
|
"cmd/compile/internal/ssa.relation %s": "",
|
||||||
"[]*cmd/compile/internal/ir.Name %v": "",
|
"cmd/compile/internal/syntax.Error %q": "",
|
||||||
"[]*cmd/compile/internal/ssa.Block %v": "",
|
"cmd/compile/internal/syntax.Expr %#v": "",
|
||||||
"[]*cmd/compile/internal/ssa.Value %v": "",
|
"cmd/compile/internal/syntax.LitKind %d": "",
|
||||||
"[][]string %q": "",
|
"cmd/compile/internal/syntax.Operator %s": "",
|
||||||
"[]byte %s": "",
|
"cmd/compile/internal/syntax.Pos %s": "",
|
||||||
"[]byte %x": "",
|
"cmd/compile/internal/syntax.position %s": "",
|
||||||
"[]cmd/compile/internal/ssa.Edge %v": "",
|
"cmd/compile/internal/syntax.token %q": "",
|
||||||
"[]cmd/compile/internal/ssa.ID %v": "",
|
"cmd/compile/internal/syntax.token %s": "",
|
||||||
"[]cmd/compile/internal/ssa.posetNode %v": "",
|
"cmd/compile/internal/types.Kind %d": "",
|
||||||
"[]cmd/compile/internal/ssa.posetUndo %v": "",
|
"cmd/compile/internal/types.Kind %s": "",
|
||||||
"[]cmd/compile/internal/syntax.token %s": "",
|
"go/constant.Value %#v": "",
|
||||||
"[]string %v": "",
|
"math/big.Accuracy %s": "",
|
||||||
"[]uint32 %v": "",
|
"reflect.Type %s": "",
|
||||||
"bool %v": "",
|
"time.Duration %d": "",
|
||||||
"byte %08b": "",
|
|
||||||
"byte %c": "",
|
|
||||||
"byte %q": "",
|
|
||||||
"byte %v": "",
|
|
||||||
"cmd/compile/internal/arm.shift %d": "",
|
|
||||||
"cmd/compile/internal/gc.initKind %d": "",
|
|
||||||
"cmd/compile/internal/gc.itag %v": "",
|
|
||||||
"cmd/compile/internal/ir.Class %d": "",
|
|
||||||
"cmd/compile/internal/ir.Class %v": "",
|
|
||||||
"cmd/compile/internal/ir.Node %+v": "",
|
|
||||||
"cmd/compile/internal/ir.Node %L": "",
|
|
||||||
"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.Ntype %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.Edge %v": "",
|
|
||||||
"cmd/compile/internal/ssa.ID %d": "",
|
|
||||||
"cmd/compile/internal/ssa.ID %v": "",
|
|
||||||
"cmd/compile/internal/ssa.LocalSlot %s": "",
|
|
||||||
"cmd/compile/internal/ssa.LocalSlot %v": "",
|
|
||||||
"cmd/compile/internal/ssa.Location %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.domain %v": "",
|
|
||||||
"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.regMask %d": "",
|
|
||||||
"cmd/compile/internal/ssa.register %d": "",
|
|
||||||
"cmd/compile/internal/ssa.relation %s": "",
|
|
||||||
"cmd/compile/internal/syntax.Error %q": "",
|
|
||||||
"cmd/compile/internal/syntax.Expr %#v": "",
|
|
||||||
"cmd/compile/internal/syntax.LitKind %d": "",
|
|
||||||
"cmd/compile/internal/syntax.Node %T": "",
|
|
||||||
"cmd/compile/internal/syntax.Operator %s": "",
|
|
||||||
"cmd/compile/internal/syntax.Pos %s": "",
|
|
||||||
"cmd/compile/internal/syntax.Pos %v": "",
|
|
||||||
"cmd/compile/internal/syntax.position %s": "",
|
|
||||||
"cmd/compile/internal/syntax.token %q": "",
|
|
||||||
"cmd/compile/internal/syntax.token %s": "",
|
|
||||||
"cmd/compile/internal/types.Kind %d": "",
|
|
||||||
"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": "",
|
|
||||||
"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": "",
|
|
||||||
"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 %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