diff --git a/.golangci.yml b/.golangci.yml index 252374a9464..0e165ccbc2f 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -7,7 +7,7 @@ linters: - forbidigo # nogo equivelant - gocritic # nogo equivelant - goimports - - gosimple + - gosimple # nogo equivelant - govet # nogo equivelant - ineffassign # nogo equivelant #- nolintlint see https://github.com/golangci/golangci-lint/issues/3228. diff --git a/cmd/symbols/squirrel/service.go b/cmd/symbols/squirrel/service.go index b8c75d2338f..9953198b00d 100644 --- a/cmd/symbols/squirrel/service.go +++ b/cmd/symbols/squirrel/service.go @@ -131,9 +131,9 @@ type DirOrNode struct { func (dirOrNode *DirOrNode) String() string { if dirOrNode.Dir != nil { - return fmt.Sprintf("%s", dirOrNode.Dir) + return dirOrNode.Dir.String() } - return fmt.Sprintf("%s", dirOrNode.Node) + return dirOrNode.Node.String() } func (s *SquirrelService) getDef(ctx context.Context, node Node) (*Node, error) { diff --git a/cmd/symbols/squirrel/util.go b/cmd/symbols/squirrel/util.go index 070405d72b6..a0cfb292185 100644 --- a/cmd/symbols/squirrel/util.go +++ b/cmd/symbols/squirrel/util.go @@ -244,7 +244,7 @@ var UnsupportedLanguageError = errors.New("unsupported language") // Parses a file and returns info about it. func (s *SquirrelService) parse(ctx context.Context, repoCommitPath types.RepoCommitPath) (*Node, error) { ext := filepath.Base(repoCommitPath.Path) - if strings.Index(ext, ".") >= 0 { + if strings.Contains(ext, ".") { ext = strings.TrimPrefix(filepath.Ext(repoCommitPath.Path), ".") } @@ -383,7 +383,7 @@ func lazyNodeStringer(node **Node) func() fmt.Stringer { if (*node).Node != nil { return String(fmt.Sprintf("%s ...%s...", (*node).Type(), snippet(*node))) } else { - return String(fmt.Sprintf("%s", (*node).RepoCommitPath.Path)) + return String((*node).RepoCommitPath.Path) } } else { return String("") diff --git a/dev/linters/staticcheck/BUILD.bazel b/dev/linters/staticcheck/BUILD.bazel index efe7471e479..8a7f5b76dd5 100644 --- a/dev/linters/staticcheck/BUILD.bazel +++ b/dev/linters/staticcheck/BUILD.bazel @@ -6,6 +6,531 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") +go_library( + name = "S1000", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1000", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1000"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1001", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1001", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1001"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1002", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1002", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1002"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1003", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1003", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1003"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1004", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1004", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1004"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1005", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1005", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1005"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1006", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1006", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1006"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1007", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1007", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1007"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1008", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1008", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1008"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1009", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1009", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1009"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1010", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1010", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1010"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1011", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1011", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1011"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1012", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1012", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1012"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1016", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1016", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1016"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1017", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1017", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1017"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1018", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1018", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1018"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1019", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1019", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1019"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1020", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1020", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1020"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1021", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1021", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1021"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1023", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1023", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1023"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1024", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1024", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1024"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1025", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1025", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1025"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1028", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1028", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1028"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1029", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1029", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1029"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1030", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1030", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1030"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1031", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1031", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1031"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1032", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1032", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1032"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1033", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1033", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1033"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1034", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1034", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1034"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1035", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1035", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1035"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1036", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1036", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1036"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1037", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1037", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1037"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1038", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1038", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1038"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1039", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1039", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1039"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + +go_library( + name = "S1040", + srcs = ["staticcheck.go"], + importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/S1040", + visibility = ["//visibility:public"], + x_defs = {"AnalyzerName": "S1040"}, + deps = [ + "//dev/linters/nolint", + "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", + "@co_honnef_go_tools//staticcheck", + "@org_golang_x_tools//go/analysis", + ], +) + go_library( name = "SA1000", srcs = ["staticcheck.go"], @@ -15,6 +540,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -29,6 +555,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -43,6 +570,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -57,6 +585,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -71,6 +600,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -85,6 +615,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -99,6 +630,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -113,6 +645,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -127,6 +660,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -141,6 +675,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -155,6 +690,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -169,6 +705,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -183,6 +720,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -197,6 +735,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -211,6 +750,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -225,6 +765,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -239,6 +780,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -253,6 +795,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -267,6 +810,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -281,6 +825,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -295,6 +840,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -309,6 +855,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -323,6 +870,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -337,6 +885,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -351,6 +900,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -365,6 +915,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -379,6 +930,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -393,6 +945,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -407,6 +960,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -421,6 +975,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -435,6 +990,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -449,6 +1005,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -463,6 +1020,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -477,6 +1035,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -491,6 +1050,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -505,6 +1065,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -519,6 +1080,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -533,6 +1095,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -547,6 +1110,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -561,6 +1125,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -575,6 +1140,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -589,6 +1155,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -603,6 +1170,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -617,6 +1185,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -631,6 +1200,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -645,6 +1215,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -659,6 +1230,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -673,6 +1245,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -687,6 +1260,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -701,6 +1275,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -715,6 +1290,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -729,6 +1305,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -743,6 +1320,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -757,6 +1335,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -771,6 +1350,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -785,6 +1365,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -799,6 +1380,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -813,6 +1395,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -827,6 +1410,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -841,6 +1425,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -855,6 +1440,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -869,6 +1455,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -883,6 +1470,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -897,6 +1485,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -911,6 +1500,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -925,6 +1515,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -939,6 +1530,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -953,6 +1545,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -967,6 +1560,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -981,6 +1575,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -995,6 +1590,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1009,6 +1605,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1023,6 +1620,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1037,6 +1635,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1051,6 +1650,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1065,6 +1665,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1079,6 +1680,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1093,6 +1695,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1107,6 +1710,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1121,6 +1725,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1135,6 +1740,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1149,6 +1755,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1163,6 +1770,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1177,6 +1785,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1191,6 +1800,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1205,6 +1815,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1219,6 +1830,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1233,6 +1845,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1247,6 +1860,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1261,6 +1875,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -1273,7 +1888,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//dev/linters/nolint", - "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], diff --git a/dev/linters/staticcheck/analyzers.bzl b/dev/linters/staticcheck/analyzers.bzl index 73ccc7c8896..b4972b731ef 100644 --- a/dev/linters/staticcheck/analyzers.bzl +++ b/dev/linters/staticcheck/analyzers.bzl @@ -4,6 +4,41 @@ # and re-run go generate STATIC_CHECK_ANALYZERS = [ + "//dev/linters/staticcheck:S1000", + "//dev/linters/staticcheck:S1001", + "//dev/linters/staticcheck:S1002", + "//dev/linters/staticcheck:S1003", + "//dev/linters/staticcheck:S1004", + "//dev/linters/staticcheck:S1005", + "//dev/linters/staticcheck:S1006", + "//dev/linters/staticcheck:S1007", + "//dev/linters/staticcheck:S1008", + "//dev/linters/staticcheck:S1009", + "//dev/linters/staticcheck:S1010", + "//dev/linters/staticcheck:S1011", + "//dev/linters/staticcheck:S1012", + "//dev/linters/staticcheck:S1016", + "//dev/linters/staticcheck:S1017", + "//dev/linters/staticcheck:S1018", + "//dev/linters/staticcheck:S1019", + "//dev/linters/staticcheck:S1020", + "//dev/linters/staticcheck:S1021", + "//dev/linters/staticcheck:S1023", + "//dev/linters/staticcheck:S1024", + "//dev/linters/staticcheck:S1025", + "//dev/linters/staticcheck:S1028", + "//dev/linters/staticcheck:S1029", + "//dev/linters/staticcheck:S1030", + "//dev/linters/staticcheck:S1031", + "//dev/linters/staticcheck:S1032", + "//dev/linters/staticcheck:S1033", + "//dev/linters/staticcheck:S1034", + "//dev/linters/staticcheck:S1035", + "//dev/linters/staticcheck:S1036", + "//dev/linters/staticcheck:S1037", + "//dev/linters/staticcheck:S1038", + "//dev/linters/staticcheck:S1039", + "//dev/linters/staticcheck:S1040", "//dev/linters/staticcheck:SA1000", "//dev/linters/staticcheck:SA1001", "//dev/linters/staticcheck:SA1002", diff --git a/dev/linters/staticcheck/cmd/BUILD.bazel b/dev/linters/staticcheck/cmd/BUILD.bazel index 7087679cb46..641ab04c032 100644 --- a/dev/linters/staticcheck/cmd/BUILD.bazel +++ b/dev/linters/staticcheck/cmd/BUILD.bazel @@ -6,8 +6,8 @@ go_library( importpath = "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck/cmd", visibility = ["//visibility:private"], deps = [ + "//dev/linters/staticcheck", "@co_honnef_go_tools//analysis/lint", - "@co_honnef_go_tools//staticcheck", ], ) diff --git a/dev/linters/staticcheck/cmd/gen.go b/dev/linters/staticcheck/cmd/gen.go index 7d79d062501..fd2f3b57f0f 100644 --- a/dev/linters/staticcheck/cmd/gen.go +++ b/dev/linters/staticcheck/cmd/gen.go @@ -7,14 +7,16 @@ import ( "strings" "text/template" + "github.com/sourcegraph/sourcegraph/dev/linters/staticcheck" "honnef.co/go/tools/analysis/lint" - "honnef.co/go/tools/staticcheck" ) -var ignoredLinters = map[string]string{ +var ignoredAnalyzer = map[string]string{ "SAXXXX": "I am an exmaple for a linter that should be ignored", } -var analyzers []*lint.Analyzer = sortedAnalyzers() + +// if you add analyzers here make sure that staticcheck.go knows about it too! +var analyzers []*lint.Analyzer = sorted(staticcheck.AllAnalyzers) var BazelBuildTemplate = `# GENERATED FILE - DO NOT EDIT # This file was generated by running go generate on dev/linters/staticcheck @@ -33,6 +35,7 @@ go_library( deps = [ "//dev/linters/nolint", "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -45,7 +48,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//dev/linters/nolint", - "@co_honnef_go_tools//analysis/lint", + "@co_honnef_go_tools//simple", "@co_honnef_go_tools//staticcheck", "@org_golang_x_tools//go/analysis", ], @@ -64,14 +67,35 @@ STATIC_CHECK_ANALYZERS = [ ] ` -func sortedAnalyzers() []*lint.Analyzer { - linters := make([]*lint.Analyzer, 0) - // remove ignored linters first - for _, linter := range staticcheck.Analyzers { - if _, shouldIgnore := ignoredLinters[linter.Analyzer.Name]; !shouldIgnore { - linters = append(linters, linter) +func unique(analyzers ...*lint.Analyzer) []*lint.Analyzer { + set := make(map[string]bool) + uniq := make([]*lint.Analyzer, 0) + + for _, a := range analyzers { + if _, ok := set[a.Analyzer.Name]; !ok { + // first time we see this analyzer! + uniq = append(uniq, a) + set[a.Analyzer.Name] = true } } + + return uniq +} + +func filterIgnored(analyzers []*lint.Analyzer, ignored map[string]string) []*lint.Analyzer { + result := make([]*lint.Analyzer, 0) + for _, a := range analyzers { + if _, shouldIgnore := ignored[a.Analyzer.Name]; !shouldIgnore { + result = append(result, a) + } + } + + return result +} + +func sorted(analyzers []*lint.Analyzer) []*lint.Analyzer { + linters := filterIgnored(unique(analyzers...), ignoredAnalyzer) + // remove ignored linters first // now sort them sort.SliceStable(linters, func(i, j int) bool { return strings.Compare(linters[i].Analyzer.Name, linters[j].Analyzer.Name) < 0 diff --git a/dev/linters/staticcheck/staticcheck.go b/dev/linters/staticcheck/staticcheck.go index 85f94efd114..e955ec48be3 100644 --- a/dev/linters/staticcheck/staticcheck.go +++ b/dev/linters/staticcheck/staticcheck.go @@ -3,18 +3,20 @@ package staticcheck import ( "golang.org/x/tools/go/analysis" - "honnef.co/go/tools/analysis/lint" + "honnef.co/go/tools/simple" "honnef.co/go/tools/staticcheck" "github.com/sourcegraph/sourcegraph/dev/linters/nolint" ) -var StaticCheckAnalyzers []*lint.Analyzer = staticcheck.Analyzers +// AllAnalyzers contains staticcheck and gosimple Analyzers +var AllAnalyzers = append(staticcheck.Analyzers, simple.Analyzers...) + var AnalyzerName = "" var Analyzer *analysis.Analyzer = GetAnalyzerByName(AnalyzerName) func GetAnalyzerByName(name string) *analysis.Analyzer { - for _, a := range StaticCheckAnalyzers { + for _, a := range AllAnalyzers { if a.Analyzer.Name == name { return nolint.Wrap(a.Analyzer) }