tools: Index | Files

package checker

import ""

Package checker defines the implementation of the checker commands. The same code drives the multi-analysis driver, the single-analysis driver that is conventionally provided for convenience along with each analysis package, and the test driver.


Package Files



var (
    // Debug is a set of single-letter flags:
    //	f	show [f]acts as they are created
    // 	p	disable [p]arallel execution of analyzers
    //	s	do additional [s]anity checks on fact types and serialization
    //	t	show [t]iming info (NB: use 'p' flag to avoid GC/scheduler noise)
    //	v	show [v]erbose logging
    Debug = ""

    // Log files for optional performance tracing.
    CPUProfile, MemProfile, Trace string

    // Fix determines whether to apply all suggested fixes.
    Fix bool

func RegisterFlags Uses

func RegisterFlags()

RegisterFlags registers command-line flags used by the analysis driver.

func Run Uses

func Run(args []string, analyzers []*analysis.Analyzer) (exitcode int)

Run loads the packages specified by args using go/packages, then applies the specified analyzers to them. Analysis flags must already have been set. It provides most of the logic for the main functions of both the singlechecker and the multi-analysis commands. It returns the appropriate exit code.

type TestAnalyzerResult Uses

type TestAnalyzerResult struct {
    Pass        *analysis.Pass
    Diagnostics []analysis.Diagnostic
    Facts       map[types.Object][]analysis.Fact
    Result      interface{}
    Err         error

func TestAnalyzer Uses

func TestAnalyzer(a *analysis.Analyzer, pkgs []*packages.Package) []*TestAnalyzerResult

TestAnalyzer applies an analysis to a set of packages (and their dependencies if necessary) and returns the results.

Facts about pkg are returned in a map keyed by object; package facts have a nil key.

This entry point is used only by analysistest.

Package checker imports 24 packages (graph) and is imported by 15 packages. Updated 2020-09-26. Refresh now. Tools for package owners.