mirror of
https://github.com/golang/go
synced 2024-11-17 04:34:46 -07:00
go/types: generate instantiate.go
Change-Id: Iad8b78bbf52eb2b0de05471bfd5a5506dc45e055 Reviewed-on: https://go-review.googlesource.com/c/go/+/461693 Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Robert Griesemer <gri@google.com> Reviewed-by: Robert Findley <rfindley@google.com> Run-TryBot: Robert Griesemer <gri@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
2507e7897b
commit
e38cb25b33
@ -91,7 +91,8 @@ var filemap = map[string]action{
|
|||||||
"gccgosizes.go": nil,
|
"gccgosizes.go": nil,
|
||||||
"hilbert_test.go": nil,
|
"hilbert_test.go": nil,
|
||||||
"infer.go": func(f *ast.File) { fixTokenPos(f); fixInferSig(f) },
|
"infer.go": func(f *ast.File) { fixTokenPos(f); fixInferSig(f) },
|
||||||
// "initorder.go": fixErrorfCall, // disabled for now due to unresolved error_ use implications for gopls
|
// "initorder.go": fixErrErrorfCall, // disabled for now due to unresolved error_ use implications for gopls
|
||||||
|
"instantiate.go": func(f *ast.File) { fixTokenPos(f); fixCheckErrorfCall(f) },
|
||||||
"instantiate_test.go": func(f *ast.File) { renameImportPath(f, `"cmd/compile/internal/types2"`, `"go/types"`) },
|
"instantiate_test.go": func(f *ast.File) { renameImportPath(f, `"cmd/compile/internal/types2"`, `"go/types"`) },
|
||||||
"lookup.go": nil,
|
"lookup.go": nil,
|
||||||
"main_test.go": nil,
|
"main_test.go": nil,
|
||||||
@ -229,8 +230,8 @@ func fixInferSig(f *ast.File) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// fixErrorfCall updates calls of the form err.errorf(obj, ...) to err.errorf(obj.Pos(), ...).
|
// fixErrErrorfCall updates calls of the form err.errorf(obj, ...) to err.errorf(obj.Pos(), ...).
|
||||||
func fixErrorfCall(f *ast.File) {
|
func fixErrErrorfCall(f *ast.File) {
|
||||||
ast.Inspect(f, func(n ast.Node) bool {
|
ast.Inspect(f, func(n ast.Node) bool {
|
||||||
switch n := n.(type) {
|
switch n := n.(type) {
|
||||||
case *ast.CallExpr:
|
case *ast.CallExpr:
|
||||||
@ -254,6 +255,31 @@ func fixErrorfCall(f *ast.File) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fixCheckErrorfCall updates calls of the form check.errorf(pos, ...) to check.errorf(atPos(pos), ...).
|
||||||
|
func fixCheckErrorfCall(f *ast.File) {
|
||||||
|
ast.Inspect(f, func(n ast.Node) bool {
|
||||||
|
switch n := n.(type) {
|
||||||
|
case *ast.CallExpr:
|
||||||
|
if selx, _ := n.Fun.(*ast.SelectorExpr); selx != nil {
|
||||||
|
if ident, _ := selx.X.(*ast.Ident); ident != nil && ident.Name == "check" {
|
||||||
|
switch selx.Sel.Name {
|
||||||
|
case "errorf":
|
||||||
|
// rewrite check.errorf(pos, ... ) to check.errorf(atPos(pos), ... )
|
||||||
|
if ident, _ := n.Args[0].(*ast.Ident); ident != nil && ident.Name == "pos" {
|
||||||
|
pos := n.Args[0].Pos()
|
||||||
|
fun := newIdent(pos, "atPos")
|
||||||
|
arg := &ast.CallExpr{Fun: fun, Lparen: pos, Args: []ast.Expr{ident}, Ellipsis: token.NoPos, Rparen: pos}
|
||||||
|
n.Args[0] = arg
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// fixTraceSel renames uses of x.Trace to x.trace, where x for any x with a Trace field.
|
// fixTraceSel renames uses of x.Trace to x.trace, where x for any x with a Trace field.
|
||||||
func fixTraceSel(f *ast.File) {
|
func fixTraceSel(f *ast.File) {
|
||||||
ast.Inspect(f, func(n ast.Node) bool {
|
ast.Inspect(f, func(n ast.Node) bool {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
// Code generated by "go run generator.go"; DO NOT EDIT.
|
||||||
|
|
||||||
// Copyright 2021 The Go Authors. All rights reserved.
|
// Copyright 2021 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
Loading…
Reference in New Issue
Block a user