lint

package
v0.0.1-2020.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2020 License: MIT, BSD-3-Clause Imports: 26 Imported by: 0

Documentation

Overview

Package lint provides the foundation for tools like staticcheck

Index

Constants

View Source
const (
	StateInitializing = 0
	StateGraph        = 1
	StateProcessing   = 2
	StateCumulative   = 3
)

Variables

This section is empty.

Functions

func DisplayPosition

func DisplayPosition(fset *token.FileSet, p token.Pos) token.Position

func FilterChecks

func FilterChecks(allChecks []*analysis.Analyzer, checks []string) map[string]bool

func FuncName

func FuncName(f *types.Func) string

Types

type AnalysisMeasurementKey

type AnalysisMeasurementKey struct {
	Analysis string
	Pkg      string
}

type CumulativeChecker

type CumulativeChecker interface {
	Analyzer() *analysis.Analyzer
	Result() []types.Object
	ProblemObject(*token.FileSet, types.Object) Problem
}

type Documentation

type Documentation struct {
	Title      string
	Text       string
	Since      string
	NonDefault bool
	Options    []string
}

func (*Documentation) String

func (doc *Documentation) String() string

type Fact

type Fact struct {
	Path string
	Fact analysis.Fact
}

type FileIgnore

type FileIgnore struct {
	File   string
	Checks []string
}

func (*FileIgnore) Match

func (fi *FileIgnore) Match(p Problem) bool

type Ignore

type Ignore interface {
	Match(p Problem) bool
}

type LineIgnore

type LineIgnore struct {
	File    string
	Line    int
	Checks  []string
	Matched bool
	Pos     token.Position
}

func (*LineIgnore) Match

func (li *LineIgnore) Match(p Problem) bool

func (*LineIgnore) String

func (li *LineIgnore) String() string

type Linter

type Linter struct {
	Checkers           []*analysis.Analyzer
	CumulativeCheckers []CumulativeChecker
	GoVersion          int
	Config             config.Config
	Stats              Stats
	RepeatAnalyzers    uint
}

A Linter lints Go source code.

func (*Linter) Lint

func (l *Linter) Lint(cfg *packages.Config, patterns []string) ([]Problem, error)

type Package

type Package struct {
	*packages.Package
	Imports []*Package
	// contains filtered or unexported fields
}

type Problem

type Problem struct {
	Pos      token.Position
	End      token.Position
	Message  string
	Check    string
	Severity Severity
	Related  []Related
}

Problem represents a problem in some source code.

func (Problem) Equal

func (p Problem) Equal(o Problem) bool

func (*Problem) String

func (p *Problem) String() string
type Related struct {
	Pos     token.Position
	End     token.Position
	Message string
}

type Runner

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

func NewRunner

func NewRunner(stats *Stats) (*Runner, error)

func (*Runner) Run

func (r *Runner) Run(cfg *packages.Config, patterns []string, analyzers []*analysis.Analyzer, hasCumulative bool) ([]*Package, error)

Run loads packages corresponding to patterns and analyses them with analyzers. It returns the loaded packages, which contain reported diagnostics as well as extracted ignore directives.

Note that diagnostics have not been filtered at this point yet, to accommodate cumulative analyzes that require additional steps to produce diagnostics.

type Severity

type Severity uint8
const (
	Error Severity = iota
	Warning
	Ignored
)

type Stats

type Stats struct {
	State uint32

	InitialPackages          uint32
	TotalPackages            uint32
	ProcessedPackages        uint32
	ProcessedInitialPackages uint32
	Problems                 uint32
	ActiveWorkers            uint32
	TotalWorkers             uint32
	PrintAnalyzerMeasurement func(*analysis.Analyzer, *Package, time.Duration)
}

func (*Stats) MeasureAnalyzer

func (s *Stats) MeasureAnalyzer(analysis *analysis.Analyzer, pkg *Package, d time.Duration)

Directories

Path Synopsis
Package lintdsl provides helpers for implementing static analysis checks.
Package lintdsl provides helpers for implementing static analysis checks.
Package lintutil provides helpers for writing linter command lines.
Package lintutil provides helpers for writing linter command lines.
format
Package format provides formatters for linter problems.
Package format provides formatters for linter problems.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL