go/analysis/cmd/analyze: install all analyzers

The default value of -findcall.name has been changed to ""
to avoid producing noise.

Change-Id: I71554080bcc7b6e23f632b49e30590fa0b0bc034
Reviewed-on: https://go-review.googlesource.com/c/143297
Reviewed-by: Michael Matloob <matloob@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
diff --git a/go/analysis/analysistest/analysistest_test.go b/go/analysis/analysistest/analysistest_test.go
index 5e3ec00..38dfd7a 100644
--- a/go/analysis/analysistest/analysistest_test.go
+++ b/go/analysis/analysistest/analysistest_test.go
@@ -28,6 +28,8 @@
 func TestTheTest(t *testing.T) {
 	// We'll simulate a partly failing test of the findcall analysis,
 	// which (by default) reports calls to functions named 'println'.
+	findcall.Analyzer.Flags.Set("name", "println")
+
 	filemap := map[string]string{"a/b.go": `package main
 
 func main() {
diff --git a/go/analysis/cmd/analyze/analyze.go b/go/analysis/cmd/analyze/analyze.go
index fcc67eb..f4df801 100644
--- a/go/analysis/cmd/analyze/analyze.go
+++ b/go/analysis/cmd/analyze/analyze.go
@@ -15,8 +15,29 @@
 	"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/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/findcall"
+	"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/nilness"
+	"golang.org/x/tools/go/analysis/passes/pkgfact"
+	"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/unreachable"
+	"golang.org/x/tools/go/analysis/passes/unsafeptr"
+	"golang.org/x/tools/go/analysis/passes/unusedresult"
 )
 
 func main() {
@@ -24,7 +45,38 @@
 	log.SetPrefix("analyze: ")
 
 	multichecker.Main(
-		findcall.Analyzer,
+		// the traditional vet suite:
+		asmdecl.Analyzer,
+		assign.Analyzer,
+		atomic.Analyzer,
+		bools.Analyzer,
 		buildtag.Analyzer,
+		cgocall.Analyzer,
+		composite.Analyzer,
+		copylock.Analyzer,
+		httpresponse.Analyzer,
+		loopclosure.Analyzer,
+		lostcancel.Analyzer,
+		nilfunc.Analyzer,
+		pkgfact.Analyzer,
+		printf.Analyzer,
+		// shadow.Analyzer, // experimental; not enabled by default
+		shift.Analyzer,
+		stdmethods.Analyzer,
+		structtag.Analyzer,
+		tests.Analyzer,
+		unreachable.Analyzer,
+		unsafeptr.Analyzer,
+		unusedresult.Analyzer,
+
+		// for debugging:
+		findcall.Analyzer,
+
+		// use SSA:
+		nilness.Analyzer,
+
+		// Work in progress:
+		// httpheader.Analyzer,
+		// deadcode.Analyzer,
 	)
 }
diff --git a/go/analysis/passes/findcall/findcall.go b/go/analysis/passes/findcall/findcall.go
index ebc6e86..2a4e3a4 100644
--- a/go/analysis/passes/findcall/findcall.go
+++ b/go/analysis/passes/findcall/findcall.go
@@ -28,7 +28,7 @@
 	FactTypes:        []analysis.Fact{new(foundFact)},
 }
 
-var name = "println" // -name flag
+var name string // -name flag
 
 func init() {
 	Analyzer.Flags.StringVar(&name, "name", name, "name of the function to find")
diff --git a/go/analysis/passes/findcall/findcall_test.go b/go/analysis/passes/findcall/findcall_test.go
index 788bc1e..e5292df 100644
--- a/go/analysis/passes/findcall/findcall_test.go
+++ b/go/analysis/passes/findcall/findcall_test.go
@@ -11,11 +11,16 @@
 	"golang.org/x/tools/go/analysis/passes/findcall"
 )
 
+func init() {
+	findcall.Analyzer.Flags.Set("name", "println")
+}
+
 // TestFromStringLiterals demonstrates how to test an analysis using
 // a table of string literals for each test case.
 //
 // Such tests are typically quite compact.
 func TestFromStringLiterals(t *testing.T) {
+
 	for _, test := range [...]struct {
 		desc    string
 		pkgpath string