type action func(in *ast.File)
var filemap = map[string]action{
+ "alias.go": nil,
"array.go": nil,
"basic.go": nil,
"chan.go": nil,
"context.go": nil,
"context_test.go": nil,
"gccgosizes.go": nil,
- "hilbert_test.go": nil,
+ "gcsizes.go": func(f *ast.File) { renameIdent(f, "IsSyncAtomicAlign64", "_IsSyncAtomicAlign64") },
+ "hilbert_test.go": func(f *ast.File) { renameImportPath(f, `"cmd/compile/internal/types2"`, `"go/types"`) },
"infer.go": func(f *ast.File) {
fixTokenPos(f)
fixInferSig(f)
"typeterm_test.go": nil,
"typeterm.go": nil,
"under.go": nil,
- "unify.go": func(f *ast.File) {
- fixSprintf(f)
- renameIdent(f, "EnableInterfaceInference", "_EnableInterfaceInference")
- },
- "universe.go": fixGlobalTypVarDecl,
- "util_test.go": fixTokenPos,
- "validtype.go": nil,
+ "unify.go": fixSprintf,
+ "universe.go": fixGlobalTypVarDecl,
+ "util_test.go": fixTokenPos,
+ "validtype.go": nil,
}
// TODO(gri) We should be able to make these rewriters more configurable/composable.
ast.Inspect(f, func(n ast.Node) bool {
switch n := n.(type) {
case *ast.FuncDecl:
- if n.Name.Name == "infer" || n.Name.Name == "infer1" || n.Name.Name == "infer2" {
+ if n.Name.Name == "infer" {
// rewrite (pos token.Pos, ...) to (posn positioner, ...)
par := n.Type.Params.List[0]
if len(par.Names) == 1 && par.Names[0].Name == "pos" {
n.Args[0] = arg
return false
}
- case "errorf", "infer1", "infer2":
+ case "errorf":
// rewrite check.errorf(pos, ...) to check.errorf(posn, ...)
- // rewrite check.infer1(pos, ...) to check.infer1(posn, ...)
- // rewrite check.infer2(pos, ...) to check.infer2(posn, ...)
if ident, _ := n.Args[0].(*ast.Ident); ident != nil && ident.Name == "pos" {
pos := n.Args[0].Pos()
arg := newIdent(pos, "posn")
n.Args[0] = arg
return false
}
+ case "allowVersion":
+ // rewrite check.allowVersion(..., pos, ...) to check.allowVersion(..., posn, ...)
+ if ident, _ := n.Args[1].(*ast.Ident); ident != nil && ident.Name == "pos" {
+ pos := n.Args[1].Pos()
+ arg := newIdent(pos, "posn")
+ n.Args[1] = arg
+ return false
+ }
}
}
}