github.com/nozzle/golangci-lint@v1.49.0-nz3/pkg/golinters/goanalysis/adapters.go (about) 1 package goanalysis 2 3 import ( 4 "go/types" 5 6 "golang.org/x/tools/go/analysis" 7 "golang.org/x/tools/go/loader" //nolint:staticcheck // it's an adapter for golang.org/x/tools/go/packages 8 ) 9 10 func MakeFakeLoaderProgram(pass *analysis.Pass) *loader.Program { 11 var info types.Info 12 if pass.TypesInfo != nil { 13 info = *pass.TypesInfo 14 } 15 16 prog := &loader.Program{ 17 Fset: pass.Fset, 18 Created: []*loader.PackageInfo{ 19 { 20 Pkg: pass.Pkg, 21 Importable: true, // not used 22 TransitivelyErrorFree: true, // TODO ??? 23 24 Files: pass.Files, 25 Errors: nil, 26 Info: info, 27 }, 28 }, 29 AllPackages: map[*types.Package]*loader.PackageInfo{ 30 pass.Pkg: { 31 Pkg: pass.Pkg, 32 Importable: true, 33 TransitivelyErrorFree: true, 34 Files: pass.Files, 35 Errors: nil, 36 Info: info, 37 }, 38 }, 39 } 40 return prog 41 }