Commit 8bb3ae18 authored by Alan Donovan's avatar Alan Donovan

cmd/vendor: eliminate vet-lite

cmd/vet, now simplified to a single function call is now authoritative,
not a copy of vet-lite.

The update-xtools.sh script now uses the imports of cmd/vet as the
roots for vendoring.

Change-Id: I4faef3fcf3db10b3a3930726e8d0720a3c8395da
Reviewed-on: https://go-review.googlesource.com/c/150297
Run-TryBot: Alan Donovan <adonovan@google.com>
Reviewed-by: 's avatarDaniel Martí <mvdan@mvdan.cc>
parent 42b46585
// The vet-lite command is a driver for static checkers conforming to
// the golang.org/x/tools/go/analysis API. It must be run by go vet:
//
// $ go vet -vettool=$(which vet-lite)
//
// For a checker also capable of running standalone, use multichecker.
package main
import (
"golang.org/x/tools/go/analysis/unitchecker"
"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/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/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"
)
// Legacy vet had the concept of "experimental" checkers. There
// was exactly one, shadow, and it had to be explicitly enabled
// by the -shadow flag, which would of course disable all the
// other tristate flags, requiring the -all flag to reenable them.
// (By itself, -all did not enable all checkers.)
// The -all flag is no longer needed, so it is a no-op.
//
// The shadow analyzer has been removed from the suite,
// but can be run using these additional commands:
// $ go install golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow
// $ go vet -vettool=$(which shadow)
// Alternatively, one could build a multichecker containing all
// the desired checks (vet's suite + shadow) and run it in a
// single "go vet" command.
func main() {
unitchecker.Main(
asmdecl.Analyzer,
assign.Analyzer,
atomic.Analyzer,
bools.Analyzer,
buildtag.Analyzer,
cgocall.Analyzer,
composite.Analyzer,
copylock.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,
)
}
#!/bin/sh #!/bin/sh
# #
# update-xtools.sh: idempotently update the vendored # update-xtools.sh: idempotently update the vendored
# copy of the x/tools repository used by vet-lite. # copy of the x/tools repository used by cmd/vet.
set -u set -u
...@@ -11,7 +11,11 @@ xtools=$(dirname $(dirname $analysis)) ...@@ -11,7 +11,11 @@ xtools=$(dirname $(dirname $analysis))
vendor=$(dirname $0) vendor=$(dirname $0)
go list -f '{{.ImportPath}} {{.Dir}}' -deps golang.org/x/tools/go/analysis/cmd/vet-lite | # Find the x/tools packages directly imported by cmd/vet.
go list -f '{{range $k, $v := .ImportMap}}{{$k}} {{end}}' cmd/vet |
grep golang.org/x/tools |
# Vendor their transitive closure of dependencies.
xargs go list -f '{{.ImportPath}} {{.Dir}}' -deps |
grep golang.org/x/tools | grep golang.org/x/tools |
while read path dir while read path dir
do do
...@@ -23,5 +27,5 @@ go list -f '{{.ImportPath}} {{.Dir}}' -deps golang.org/x/tools/go/analysis/cmd/v ...@@ -23,5 +27,5 @@ go list -f '{{.ImportPath}} {{.Dir}}' -deps golang.org/x/tools/go/analysis/cmd/v
echo "Copied $xtools@$(cd $analysis && git rev-parse --short HEAD) to $vendor" >&2 echo "Copied $xtools@$(cd $analysis && git rev-parse --short HEAD) to $vendor" >&2
go build -o /dev/null ./golang.org/x/tools/go/analysis/cmd/vet-lite || go build -o /dev/null cmd/vet ||
{ echo "Failed to build vet-lite"; exit 1; } >&2 { echo "Failed to build cmd/vet"; exit 1; } >&2
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment