
Also do following improvements: - show proper sublinter name for megacheck sublinters - refactor and make more simple and robust megacheck merging/optimizing - improve handling of unknown linter names in //nolint directives - minimize diff of our megacheck version from the upstream, https://github.com/golang/go/issues/29612 blocks usage of the upstream version - support the new `stylecheck` linter - improve tests coverage for megacheck and nolint related cases - update and use upstream versions of unparam and interfacer instead of forked ones - don't use golangci/tools repo anymore - fix newly found issues after updating linters Also should be noted that megacheck works much faster and consumes less memory in the newest release, therefore golangci-lint works noticeably faster and consumes less memory for large repos. Relates: #314
29 lines
587 B
Go
29 lines
587 B
Go
// Copyright (c) 2017, Daniel Martí <mvdan@mvdan.cc>
|
|
// See LICENSE for licensing information
|
|
|
|
// Package lint defines common interfaces for Go code checkers.
|
|
package lint // import "mvdan.cc/lint"
|
|
|
|
import (
|
|
"go/token"
|
|
|
|
"golang.org/x/tools/go/loader"
|
|
"golang.org/x/tools/go/ssa"
|
|
)
|
|
|
|
// A Checker points out issues in a program.
|
|
type Checker interface {
|
|
Program(*loader.Program)
|
|
Check() ([]Issue, error)
|
|
}
|
|
|
|
type WithSSA interface {
|
|
ProgramSSA(*ssa.Program)
|
|
}
|
|
|
|
// Issue represents an issue somewhere in a source code file.
|
|
type Issue interface {
|
|
Pos() token.Pos
|
|
Message() string
|
|
}
|