34 lines
942 B
Go
34 lines
942 B
Go
package golinters
|
|
|
|
import (
|
|
"golang.org/x/tools/go/analysis"
|
|
|
|
"github.com/golangci/golangci-lint/pkg/config"
|
|
"github.com/golangci/golangci-lint/pkg/logutils"
|
|
)
|
|
|
|
var debugf = logutils.Debug("megacheck")
|
|
|
|
func setupStaticCheckAnalyzers(m map[string]*analysis.Analyzer, settings *config.StaticCheckSettings) []*analysis.Analyzer {
|
|
var ret []*analysis.Analyzer
|
|
for _, v := range m {
|
|
setAnalyzerGoVersion(v, settings)
|
|
ret = append(ret, v)
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func setAnalyzerGoVersion(a *analysis.Analyzer, settings *config.StaticCheckSettings) {
|
|
// TODO: uses "1.13" for backward compatibility, but in the future (v2) must be set by using build.Default.ReleaseTags like staticcheck.
|
|
goVersion := "1.13"
|
|
if settings != nil && settings.GoVersion != "" {
|
|
goVersion = settings.GoVersion
|
|
}
|
|
|
|
if v := a.Flags.Lookup("go"); v != nil {
|
|
if err := v.Value.Set(goVersion); err != nil {
|
|
debugf("Failed to set go version: %s", err)
|
|
}
|
|
}
|
|
}
|