Fix #94: load object files for govet for old go
Do it in compatible with old go versions object files way: use golang.org/x/tools/go/gcexportdata instead of importer.Default
This commit is contained in:
parent
78d39711f0
commit
ebbfc26e88
2
Gopkg.lock
generated
2
Gopkg.lock
generated
@ -122,7 +122,7 @@
|
|||||||
"lib/cfg",
|
"lib/cfg",
|
||||||
"lib/whitelist"
|
"lib/whitelist"
|
||||||
]
|
]
|
||||||
revision = "18c83969a303d67eaa9d67747a930f007e3e9c89"
|
revision = "54e733a64097854cf4d8fa80ccf48012a487ae1a"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
branch = "master"
|
branch = "master"
|
||||||
|
7
vendor/github.com/golangci/govet/types.go
generated
vendored
7
vendor/github.com/golangci/govet/types.go
generated
vendored
@ -16,6 +16,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"golang.org/x/tools/go/gcexportdata"
|
||||||
"golang.org/x/tools/go/loader"
|
"golang.org/x/tools/go/loader"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -29,6 +30,10 @@ var (
|
|||||||
formatterType *types.Interface // possibly nil
|
formatterType *types.Interface // possibly nil
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func newGCExportDataImporter(fset *token.FileSet) types.ImporterFrom {
|
||||||
|
return gcexportdata.NewImporter(fset, make(map[string]*types.Package))
|
||||||
|
}
|
||||||
|
|
||||||
func inittypes() error {
|
func inittypes() error {
|
||||||
errorType = types.Universe.Lookup("error").Type().Underlying().(*types.Interface)
|
errorType = types.Universe.Lookup("error").Type().Underlying().(*types.Interface)
|
||||||
|
|
||||||
@ -83,7 +88,7 @@ func (pkg *Package) check(fs *token.FileSet, astFiles []*ast.File, pkgInfo *load
|
|||||||
if *source {
|
if *source {
|
||||||
stdImporter = importer.For("source", nil)
|
stdImporter = importer.For("source", nil)
|
||||||
} else {
|
} else {
|
||||||
stdImporter = importer.Default()
|
stdImporter = newGCExportDataImporter(fs)
|
||||||
}
|
}
|
||||||
if err := inittypes(); err != nil {
|
if err := inittypes(); err != nil {
|
||||||
return []error{fmt.Errorf("can't init std types: %s", err)}
|
return []error{fmt.Errorf("can't init std types: %s", err)}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user