mirror of
https://github.com/golang/go
synced 2024-09-30 22:48:32 -06:00
go.tools/imports: fix fileset mismatch bug
Fixes golang/go#6884 R=golang-dev, gri CC=golang-dev https://golang.org/cl/43890043
This commit is contained in:
parent
64c6d0410b
commit
b6e674b8e7
@ -45,7 +45,7 @@ func importGroup(importPath string) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func fixImports(f *ast.File) (added []string, err error) {
|
||||
func fixImports(fset *token.FileSet, f *ast.File) (added []string, err error) {
|
||||
// refs are a set of possible package references currently unsatisified by imports.
|
||||
// first key: either base package (e.g. "fmt") or renamed package
|
||||
// second key: referenced package symbol (e.g. "Println")
|
||||
@ -196,8 +196,6 @@ func loadPkgIndex() {
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
var fset = token.NewFileSet()
|
||||
|
||||
func loadPkg(wg *sync.WaitGroup, root, pkgrelpath string) {
|
||||
importpath := filepath.ToSlash(pkgrelpath)
|
||||
shortName := importPathToName(importpath)
|
||||
@ -250,6 +248,7 @@ func loadExportsGoPath(dir string) map[string]bool {
|
||||
fmt.Fprintf(os.Stderr, "could not import %q: %v", dir, err)
|
||||
return nil
|
||||
}
|
||||
fset := token.NewFileSet()
|
||||
for _, file := range buildPkg.GoFiles {
|
||||
f, err := parser.ParseFile(fset, filepath.Join(dir, file), nil, 0)
|
||||
if err != nil {
|
||||
|
@ -447,6 +447,27 @@ func f() {
|
||||
_ = fmt.Printf
|
||||
_ = snappy.Foo
|
||||
}
|
||||
`,
|
||||
},
|
||||
|
||||
// golang.org/issue/6884
|
||||
{
|
||||
name: "issue 6884",
|
||||
in: `package main
|
||||
|
||||
// A comment
|
||||
func main() {
|
||||
fmt.Println("Hello, world")
|
||||
}
|
||||
`,
|
||||
out: `package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
// A comment
|
||||
func main() {
|
||||
fmt.Println("Hello, world")
|
||||
}
|
||||
`,
|
||||
},
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ func Process(filename string, src []byte, opt *Options) ([]byte, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, err = fixImports(file)
|
||||
_, err = fixImports(fileSet, file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user