package unitchecker
import "golang.org/x/tools/go/analysis/unitchecker"
The unitchecker package defines the main function for an analysis driver that analyzes a single compilation unit during a build. It is invoked by a build system such as "go vet":
$ go vet -vettool=$(which vet)
It supports the following command-line protocol:
-V=full describe executable (to the build tool) -flags describe flags (to the build tool) foo.cfg description of compilation unit (from the build tool)
This package does not depend on go/packages. If you need a standalone tool, use multichecker, which supports this mode but can also load packages from source using go/packages.
Index ¶
- func Main(analyzers ...*analysis.Analyzer)
- func Run(configFile string, analyzers []*analysis.Analyzer)
- type Config
Functions ¶
func Main ¶
Main is the main function of a vet-like analysis tool that must be invoked by a build system to analyze a single package.
The protocol required by 'go vet -vettool=...' is that the tool must support:
-flags describe flags in JSON -V=full describe executable for build caching foo.cfg perform separate modular analyze on the single unit described by a JSON config file foo.cfg.
func Run ¶
Run reads the *.cfg file, runs the analysis, and calls os.Exit with an appropriate error code. It assumes flags have already been set.
Types ¶
type Config ¶
type Config struct { ID string // e.g. "fmt [fmt.test]" Compiler string // gc or gccgo, provided to MakeImporter Dir string // (unused) ImportPath string // package path GoVersion string // minimum required Go version, such as "go1.21.0" GoFiles []string NonGoFiles []string IgnoredFiles []string ModulePath string // module path ModuleVersion string // module version ImportMap map[string]string // maps import path to package path PackageFile map[string]string // maps package path to file of type information Standard map[string]bool // package belongs to standard library PackageVetx map[string]string // maps package path to file of fact information VetxOnly bool // run analysis only for facts, not diagnostics VetxOutput string // where to write file of fact information SucceedOnTypecheckFailure bool }
A Config describes a compilation unit to be analyzed. It is provided to the tool in a JSON-encoded file whose name ends with ".cfg".
Source Files ¶
unitchecker.go
- Version
- v0.30.0 (latest)
- Published
- Feb 10, 2025
- Platform
- linux/amd64
- Imports
- 23 packages
- Last checked
- 3 hours ago –
Tools for package owners.