+++ /dev/null
-// 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
#
# 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
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 |
while read path dir
do
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 ||
- { echo "Failed to build vet-lite"; exit 1; } >&2
+go build -o /dev/null cmd/vet ||
+ { echo "Failed to build cmd/vet"; exit 1; } >&2