blob: 621e30b2571ea5e9cb1f468cbb0160e683861f6f [file] [log] [blame]
Serge Bazanski0ef96292021-05-21 15:41:32 +02001load("@io_bazel_rules_go//go:def.bzl", "nogo")
2
3# These deps enable the analyses equivalent to running `go vet`.
4# Passing vet = True enables only a tiny subset of these (the ones
5# that are always correct).
6# You can see the what `go vet` does by running `go doc cmd/vet`.
7govet = [
8 "@org_golang_x_tools//go/analysis/passes/asmdecl:go_tool_library",
9 "@org_golang_x_tools//go/analysis/passes/assign:go_tool_library",
10 "@org_golang_x_tools//go/analysis/passes/atomic:go_tool_library",
11 "@org_golang_x_tools//go/analysis/passes/bools:go_tool_library",
12 "@org_golang_x_tools//go/analysis/passes/buildtag:go_tool_library",
13 # Disable cgocall because it fails processing com_github_mattn_go_sqlite3 before exclusions are applied
14 #"@org_golang_x_tools//go/analysis/passes/cgocall:go_tool_library",
15 "@org_golang_x_tools//go/analysis/passes/composite:go_tool_library",
16 "@org_golang_x_tools//go/analysis/passes/copylock:go_tool_library",
17 "@org_golang_x_tools//go/analysis/passes/httpresponse:go_tool_library",
18 "@org_golang_x_tools//go/analysis/passes/loopclosure:go_tool_library",
19 "@org_golang_x_tools//go/analysis/passes/lostcancel:go_tool_library",
20 "@org_golang_x_tools//go/analysis/passes/nilfunc:go_tool_library",
21 "@org_golang_x_tools//go/analysis/passes/printf:go_tool_library",
22 "@org_golang_x_tools//go/analysis/passes/shift:go_tool_library",
23 "@org_golang_x_tools//go/analysis/passes/stdmethods:go_tool_library",
24 "@org_golang_x_tools//go/analysis/passes/structtag:go_tool_library",
25 "@org_golang_x_tools//go/analysis/passes/tests:go_tool_library",
26 "@org_golang_x_tools//go/analysis/passes/unmarshal:go_tool_library",
27 "@org_golang_x_tools//go/analysis/passes/unreachable:go_tool_library",
28 "@org_golang_x_tools//go/analysis/passes/unsafeptr:go_tool_library",
29 "@org_golang_x_tools//go/analysis/passes/unusedresult:go_tool_library",
30]
31
32nogo(
33 name = "nogo",
34 config = "nogo_config.json",
35 visibility = ["//visibility:public"],
Serge Bazanski6ebdc412021-05-21 16:25:55 +020036 deps = govet + [
37 # This analyzer ensures that all comment lines are <= 80 characters long
38 # in Go source. This is in line with general practices around the Go
39 # community, where code lines can be as long as needed (and is expected
40 # to be soft-reflowable by text editors), but comments are kept at a
41 # 'standard' 80 characters long, as prose within comment blocks does not
42 # soft-reflow well.
43 "@com_github_corverroos_commentwrap//:go_tool_library",
44 ],
Serge Bazanski0ef96292021-05-21 15:41:32 +020045)