github.com/elek/golangci-lint@v1.42.2-0.20211208090441-c05b7fcb3a9a/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  	prog := &loader.Program{
    12  		Fset: pass.Fset,
    13  		Created: []*loader.PackageInfo{
    14  			{
    15  				Pkg:                   pass.Pkg,
    16  				Importable:            true, // not used
    17  				TransitivelyErrorFree: true, // TODO
    18  
    19  				Files:  pass.Files,
    20  				Errors: nil,
    21  				Info:   *pass.TypesInfo,
    22  			},
    23  		},
    24  		AllPackages: map[*types.Package]*loader.PackageInfo{
    25  			pass.Pkg: {
    26  				Pkg:                   pass.Pkg,
    27  				Importable:            true,
    28  				TransitivelyErrorFree: true,
    29  				Files:                 pass.Files,
    30  				Errors:                nil,
    31  				Info:                  *pass.TypesInfo,
    32  			},
    33  		},
    34  	}
    35  	return prog
    36  }