|
@@ -0,0 +1,80 @@
|
|
|
+// Copyright 2018 The mkcert Authors. All rights reserved.
|
|
|
+// Use of this source code is governed by a BSD-style
|
|
|
+// license that can be found in the LICENSE file.
|
|
|
+
|
|
|
+// +build analysis
|
|
|
+
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "golang.org/x/tools/go/analysis"
|
|
|
+ "golang.org/x/tools/go/analysis/multichecker"
|
|
|
+
|
|
|
+ "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/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"
|
|
|
+
|
|
|
+ "honnef.co/go/tools/simple"
|
|
|
+ "honnef.co/go/tools/staticcheck"
|
|
|
+ "honnef.co/go/tools/stylecheck"
|
|
|
+)
|
|
|
+
|
|
|
+func main() {
|
|
|
+ var analyzers []*analysis.Analyzer
|
|
|
+
|
|
|
+ // Add all cmd/vet analyzers.
|
|
|
+ analyzers = append(analyzers,
|
|
|
+ asmdecl.Analyzer,
|
|
|
+ assign.Analyzer,
|
|
|
+ atomic.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 _, v := range simple.Analyzers {
|
|
|
+ analyzers = append(analyzers, v)
|
|
|
+ }
|
|
|
+ for _, v := range staticcheck.Analyzers {
|
|
|
+ analyzers = append(analyzers, v)
|
|
|
+ }
|
|
|
+ for _, v := range stylecheck.Analyzers {
|
|
|
+ analyzers = append(analyzers, v)
|
|
|
+ }
|
|
|
+
|
|
|
+ multichecker.Main(analyzers...)
|
|
|
+}
|