1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:24:42 -07:00
go/gopls/internal/hooks/analysis.go
Dominik Honnef 332987a829 gopls/internal/hooks: don't run staticcheck's SA5011
SA5011 relies on facts from dependencies to avoid false positives.
However, gopls currently only loads export data for dependencies, it
does not compute facts.

SA5011 is unlike other analyzers in staticcheck, which may produce
false negatives if facts are missing, but no false positives.

Change-Id: I5063b701bbedca7b09d1894997f8c574fa497939
Reviewed-on: https://go-review.googlesource.com/c/tools/+/228119
Run-TryBot: Dominik Honnef <dominik@honnef.co>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2020-04-14 03:22:29 +00:00

35 lines
881 B
Go

// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package hooks
import (
"golang.org/x/tools/internal/lsp/source"
"honnef.co/go/tools/simple"
"honnef.co/go/tools/staticcheck"
"honnef.co/go/tools/stylecheck"
)
func updateAnalyzers(options *source.Options) {
if options.StaticCheck {
for _, a := range simple.Analyzers {
options.AddDefaultAnalyzer(a)
}
for _, a := range staticcheck.Analyzers {
switch a.Name {
case "SA5009":
// This check conflicts with the vet printf check (golang/go#34494).
case "SA5011":
// This check relies on facts from dependencies, which
// we don't currently compute.
default:
options.AddDefaultAnalyzer(a)
}
}
for _, a := range stylecheck.Analyzers {
options.AddDefaultAnalyzer(a)
}
}
}