84 lines
2.7 KiB
Go
84 lines
2.7 KiB
Go
// Copyright 2018 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.
|
|
|
|
// The vet command is a static checker for Go programs. It has pluggable
|
|
// analyzers defined using the golang.org/x/tools/go/analysis API, and
|
|
// using the golang.org/x/tools/go/packages API to load packages in any
|
|
// build system.
|
|
//
|
|
// Each analyzer flag name is preceded by the analyzer name: -NAME.flag.
|
|
// In addition, the -NAME flag itself controls whether the
|
|
// diagnostics of that analyzer are displayed. (A disabled analyzer may yet
|
|
// be run if it is required by some other analyzer that is enabled.)
|
|
package main
|
|
|
|
import (
|
|
"golang.org/x/tools/go/analysis/multichecker"
|
|
|
|
// analysis plug-ins
|
|
"golang.org/x/tools/go/analysis/passes/asmdecl"
|
|
"golang.org/x/tools/go/analysis/passes/assign"
|
|
"golang.org/x/tools/go/analysis/passes/atomic"
|
|
"golang.org/x/tools/go/analysis/passes/atomicalign"
|
|
"golang.org/x/tools/go/analysis/passes/bools"
|
|
"golang.org/x/tools/go/analysis/passes/buildtag"
|
|
"golang.org/x/tools/go/analysis/passes/cgocall"
|
|
"golang.org/x/tools/go/analysis/passes/composite"
|
|
"golang.org/x/tools/go/analysis/passes/copylock"
|
|
"golang.org/x/tools/go/analysis/passes/errorsas"
|
|
"golang.org/x/tools/go/analysis/passes/httpresponse"
|
|
"golang.org/x/tools/go/analysis/passes/loopclosure"
|
|
"golang.org/x/tools/go/analysis/passes/lostcancel"
|
|
"golang.org/x/tools/go/analysis/passes/nilfunc"
|
|
"golang.org/x/tools/go/analysis/passes/printf"
|
|
"golang.org/x/tools/go/analysis/passes/shift"
|
|
"golang.org/x/tools/go/analysis/passes/stdmethods"
|
|
"golang.org/x/tools/go/analysis/passes/structtag"
|
|
"golang.org/x/tools/go/analysis/passes/tests"
|
|
"golang.org/x/tools/go/analysis/passes/unmarshal"
|
|
"golang.org/x/tools/go/analysis/passes/unreachable"
|
|
"golang.org/x/tools/go/analysis/passes/unsafeptr"
|
|
"golang.org/x/tools/go/analysis/passes/unusedresult"
|
|
)
|
|
|
|
func main() {
|
|
// This suite of analyzers is applied to all code
|
|
// in GOROOT by GOROOT/src/cmd/vet/all. When adding
|
|
// a new analyzer, update the whitelist used by vet/all,
|
|
// or change its vet command to disable the new analyzer.
|
|
multichecker.Main(
|
|
// the traditional vet suite:
|
|
asmdecl.Analyzer,
|
|
assign.Analyzer,
|
|
atomic.Analyzer,
|
|
atomicalign.Analyzer,
|
|
bools.Analyzer,
|
|
buildtag.Analyzer,
|
|
cgocall.Analyzer,
|
|
composite.Analyzer,
|
|
copylock.Analyzer,
|
|
errorsas.Analyzer,
|
|
httpresponse.Analyzer,
|
|
loopclosure.Analyzer,
|
|
lostcancel.Analyzer,
|
|
nilfunc.Analyzer,
|
|
printf.Analyzer,
|
|
shift.Analyzer,
|
|
stdmethods.Analyzer,
|
|
structtag.Analyzer,
|
|
tests.Analyzer,
|
|
unmarshal.Analyzer,
|
|
unreachable.Analyzer,
|
|
unsafeptr.Analyzer,
|
|
unusedresult.Analyzer,
|
|
|
|
// for debugging:
|
|
// findcall.Analyzer,
|
|
// pkgfact.Analyzer,
|
|
|
|
// uses SSA:
|
|
// nilness.Analyzer,
|
|
)
|
|
}
|