| load("@io_bazel_rules_go//go:def.bzl", "nogo") |
| |
| # These deps enable the analyses equivalent to running `go vet`. |
| # Passing vet = True enables only a tiny subset of these (the ones |
| # that are always correct). |
| # You can see the what `go vet` does by running `go doc cmd/vet`. |
| govet = [ |
| "@org_golang_x_tools//go/analysis/passes/asmdecl:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/assign:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/atomic:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/bools:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/buildtag:go_default_library", |
| # Disable cgocall because it fails processing com_github_mattn_go_sqlite3 before exclusions are applied |
| #"@org_golang_x_tools//go/analysis/passes/cgocall:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/composite:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/copylock:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/httpresponse:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/loopclosure:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/lostcancel:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/nilfunc:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/printf:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/shift:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/stdmethods:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/structtag:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/tests:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/unmarshal:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/unreachable:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/unsafeptr:go_default_library", |
| "@org_golang_x_tools//go/analysis/passes/unusedresult:go_default_library", |
| ] |
| |
| nogo( |
| name = "nogo", |
| config = "nogo_config.json", |
| visibility = ["//visibility:public"], |
| deps = govet + [ |
| # This analyzer ensures that all comment lines are <= 80 characters long |
| # in Go source. This is in line with general practices around the Go |
| # community, where code lines can be as long as needed (and is expected |
| # to be soft-reflowable by text editors), but comments are kept at a |
| # 'standard' 80 characters long, as prose within comment blocks does not |
| # soft-reflow well. |
| "@com_github_corverroos_commentwrap//:go_default_library", |
| "//build/analysis/noioutil", |
| "//build/analysis/importsort", |
| ], |
| ) |