mirror of
https://github.com/golang/go
synced 2024-11-05 11:36:10 -07:00
go/gcexportdata: use a constant from a frozen package for testing
Switch from test to use net/rpc instead of text/scanner, since net/rpc is a frozen package that is guaranteed not to change. Change-Id: I6ece679bc16737fa9a75ac896f9eb2190317a498 Reviewed-on: https://go-review.googlesource.com/c/163204 Run-TryBot: Rebecca Stambler <rstambler@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
This commit is contained in:
parent
9c8c5aeafa
commit
83362c3779
@ -70,15 +70,15 @@ func ExampleRead() {
|
||||
// ExampleNewImporter demonstrates usage of NewImporter to provide type
|
||||
// information for dependencies when type-checking Go source code.
|
||||
func ExampleNewImporter() {
|
||||
const src = `package myscanner
|
||||
const src = `package myrpc
|
||||
|
||||
// choosing a package that is unlikely to change across releases
|
||||
import "text/scanner"
|
||||
// choosing a package that doesn't change across releases
|
||||
import "net/rpc"
|
||||
|
||||
const scanIdents = scanner.ScanIdents
|
||||
const defaultRPCPath = rpc.DefaultRPCPath
|
||||
`
|
||||
fset := token.NewFileSet()
|
||||
f, err := parser.ParseFile(fset, "myscanner.go", src, 0)
|
||||
f, err := parser.ParseFile(fset, "myrpc.go", src, 0)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
@ -86,13 +86,13 @@ const scanIdents = scanner.ScanIdents
|
||||
packages := make(map[string]*types.Package)
|
||||
imp := gcexportdata.NewImporter(fset, packages)
|
||||
conf := types.Config{Importer: imp}
|
||||
pkg, err := conf.Check("myscanner", fset, []*ast.File{f}, nil)
|
||||
pkg, err := conf.Check("myrpc", fset, []*ast.File{f}, nil)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// object from imported package
|
||||
pi := packages["text/scanner"].Scope().Lookup("ScanIdents")
|
||||
pi := packages["net/rpc"].Scope().Lookup("DefaultRPCPath")
|
||||
fmt.Printf("const %s.%s %s = %s // %s\n",
|
||||
pi.Pkg().Path(),
|
||||
pi.Name(),
|
||||
@ -102,7 +102,7 @@ const scanIdents = scanner.ScanIdents
|
||||
)
|
||||
|
||||
// object in source package
|
||||
twopi := pkg.Scope().Lookup("scanIdents")
|
||||
twopi := pkg.Scope().Lookup("defaultRPCPath")
|
||||
fmt.Printf("const %s %s = %s // %s\n",
|
||||
twopi.Name(),
|
||||
twopi.Type(),
|
||||
@ -112,8 +112,8 @@ const scanIdents = scanner.ScanIdents
|
||||
|
||||
// Output:
|
||||
//
|
||||
// const text/scanner.ScanIdents untyped int = 4 // $GOROOT/src/text/scanner/scanner.go:62:1
|
||||
// const scanIdents untyped int = 4 // myscanner.go:6:7
|
||||
// const net/rpc.DefaultRPCPath untyped string = "/_goRPC_" // $GOROOT/src/net/rpc/server.go:146:1
|
||||
// const defaultRPCPath untyped string = "/_goRPC_" // myrpc.go:6:7
|
||||
}
|
||||
|
||||
func slashify(posn token.Position) token.Position {
|
||||
|
Loading…
Reference in New Issue
Block a user