mirror of
https://github.com/golang/go
synced 2024-11-18 17:44:47 -07:00
go/analysis/cmd/vet: remove
The existence of two versions of vet, namely this one and the one in the Go distribution, creates confusion. Remove this one. Fixes golang/go#31886 Change-Id: I351ad95329088f91f6a88452ee8e3654849f6ef2 Reviewed-on: https://go-review.googlesource.com/c/tools/+/192177 Run-TryBot: Michael Matloob <matloob@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Cottrell <iancottrell@google.com>
This commit is contained in:
parent
a0cf054a45
commit
aed303cbaa
@ -1,33 +0,0 @@
|
||||
Vet is a tool that checks correctness of Go programs. It runs a suite of tests,
|
||||
each tailored to check for a particular class of errors. Examples include incorrect
|
||||
Printf format verbs and malformed build tags.
|
||||
|
||||
Over time many checks have been added to vet's suite, but many more have been
|
||||
rejected as not appropriate for the tool. The criteria applied when selecting which
|
||||
checks to add are:
|
||||
|
||||
Correctness:
|
||||
|
||||
Vet's checks are about correctness, not style. A vet check must identify real or
|
||||
potential bugs that could cause incorrect compilation or execution. A check that
|
||||
only identifies stylistic points or alternative correct approaches to a situation
|
||||
is not acceptable.
|
||||
|
||||
Frequency:
|
||||
|
||||
Vet is run every day by many programmers, often as part of every compilation or
|
||||
submission. The cost in execution time is considerable, especially in aggregate,
|
||||
so checks must be likely enough to find real problems that they are worth the
|
||||
overhead of the added check. A new check that finds only a handful of problems
|
||||
across all existing programs, even if the problem is significant, is not worth
|
||||
adding to the suite everyone runs daily.
|
||||
|
||||
Precision:
|
||||
|
||||
Most of vet's checks are heuristic and can generate both false positives (flagging
|
||||
correct programs) and false negatives (not flagging incorrect ones). The rate of
|
||||
both these failures must be very small. A check that is too noisy will be ignored
|
||||
by the programmer overwhelmed by the output; a check that misses too many of the
|
||||
cases it's looking for will give a false sense of security. Neither is acceptable.
|
||||
A vet check must be accurate enough that everything it reports is worth examining,
|
||||
and complete enough to encourage real confidence.
|
@ -1,83 +0,0 @@
|
||||
// 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,
|
||||
)
|
||||
}
|
Loading…
Reference in New Issue
Block a user