Documentation

Overview

    Package goanalysis 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.

    Index

    Constants

    View Source
    const (
    	TheOnlyAnalyzerName = "the_only_name"
    	TheOnlyanalyzerDoc  = "the_only_doc"
    )

    Variables

    This section is empty.

    Functions

    func MakeFakeLoaderProgram

    func MakeFakeLoaderProgram(pass *analysis.Pass) *loader.Program

    Types

    type Diagnostic

    type Diagnostic struct {
    	analysis.Diagnostic
    	Analyzer *analysis.Analyzer
    	Position token.Position
    	Pkg      *packages.Package
    }

    type EncodingIssue

    type EncodingIssue struct {
    	FromLinter           string
    	Text                 string
    	Pos                  token.Position
    	LineRange            *result.Range
    	Replacement          *result.Replacement
    	ExpectNoLint         bool
    	ExpectedNoLintLinter string
    }

    type Fact

    type Fact struct {
    	Path string // non-empty only for object facts
    	Fact analysis.Fact
    }

    type IllTypedError

    type IllTypedError struct {
    	Pkg *packages.Package
    }

    func (*IllTypedError) Error

    func (e *IllTypedError) Error() string

    type Issue

    type Issue struct {
    	result.Issue
    	Pass *analysis.Pass
    }

    func NewIssue

    func NewIssue(i *result.Issue, pass *analysis.Pass) Issue

    type Linter

    type Linter struct {
    	// contains filtered or unexported fields
    }

    func NewLinter

    func NewLinter(name, desc string, analyzers []*analysis.Analyzer, cfg map[string]map[string]interface{}) *Linter

    func (*Linter) Desc

    func (lnt *Linter) Desc() string

    func (*Linter) LoadMode

    func (lnt *Linter) LoadMode() LoadMode

    func (*Linter) Name

    func (lnt *Linter) Name() string

    func (*Linter) Run

    func (lnt *Linter) Run(_ context.Context, lintCtx *linter.Context) ([]result.Issue, error)

    func (*Linter) UseOriginalPackages

    func (lnt *Linter) UseOriginalPackages()

    func (*Linter) WithContextSetter

    func (lnt *Linter) WithContextSetter(cs func(*linter.Context)) *Linter

    func (*Linter) WithIssuesReporter

    func (lnt *Linter) WithIssuesReporter(r func(*linter.Context) []Issue) *Linter

    func (*Linter) WithLoadMode

    func (lnt *Linter) WithLoadMode(loadMode LoadMode) *Linter

    type LoadMode

    type LoadMode int
    const (
    	LoadModeNone LoadMode = iota
    	LoadModeSyntax
    	LoadModeTypesInfo
    	LoadModeWholeProgram
    )

    func (LoadMode) String

    func (loadMode LoadMode) String() string

    type MetaLinter

    type MetaLinter struct {
    	// contains filtered or unexported fields
    }

    func NewMetaLinter

    func NewMetaLinter(linters []*Linter) *MetaLinter

    func (MetaLinter) Desc

    func (ml MetaLinter) Desc() string

    func (MetaLinter) Name

    func (ml MetaLinter) Name() string

    func (MetaLinter) Run

    func (ml MetaLinter) Run(_ context.Context, lintCtx *linter.Context) ([]result.Issue, error)

    Directories

    Path Synopsis