analysis.go 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. // Copyright 2018 The mkcert Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. // +build analysis
  5. package main
  6. import (
  7. "golang.org/x/tools/go/analysis"
  8. "golang.org/x/tools/go/analysis/multichecker"
  9. "golang.org/x/tools/go/analysis/passes/asmdecl"
  10. "golang.org/x/tools/go/analysis/passes/assign"
  11. "golang.org/x/tools/go/analysis/passes/atomic"
  12. "golang.org/x/tools/go/analysis/passes/bools"
  13. "golang.org/x/tools/go/analysis/passes/buildtag"
  14. "golang.org/x/tools/go/analysis/passes/cgocall"
  15. "golang.org/x/tools/go/analysis/passes/composite"
  16. "golang.org/x/tools/go/analysis/passes/copylock"
  17. "golang.org/x/tools/go/analysis/passes/errorsas"
  18. "golang.org/x/tools/go/analysis/passes/httpresponse"
  19. "golang.org/x/tools/go/analysis/passes/ifaceassert"
  20. "golang.org/x/tools/go/analysis/passes/loopclosure"
  21. "golang.org/x/tools/go/analysis/passes/lostcancel"
  22. "golang.org/x/tools/go/analysis/passes/nilfunc"
  23. "golang.org/x/tools/go/analysis/passes/printf"
  24. "golang.org/x/tools/go/analysis/passes/shift"
  25. "golang.org/x/tools/go/analysis/passes/stdmethods"
  26. "golang.org/x/tools/go/analysis/passes/stringintconv"
  27. "golang.org/x/tools/go/analysis/passes/structtag"
  28. "golang.org/x/tools/go/analysis/passes/testinggoroutine"
  29. "golang.org/x/tools/go/analysis/passes/tests"
  30. "golang.org/x/tools/go/analysis/passes/unmarshal"
  31. "golang.org/x/tools/go/analysis/passes/unreachable"
  32. "golang.org/x/tools/go/analysis/passes/unusedresult"
  33. "honnef.co/go/tools/simple"
  34. "honnef.co/go/tools/staticcheck"
  35. "honnef.co/go/tools/stylecheck"
  36. )
  37. func main() {
  38. var analyzers []*analysis.Analyzer
  39. // Add all cmd/vet analyzers.
  40. // https://github.com/golang/go/issues/35487
  41. analyzers = append(analyzers,
  42. asmdecl.Analyzer,
  43. assign.Analyzer,
  44. atomic.Analyzer,
  45. bools.Analyzer,
  46. buildtag.Analyzer,
  47. cgocall.Analyzer,
  48. composite.Analyzer,
  49. copylock.Analyzer,
  50. errorsas.Analyzer,
  51. httpresponse.Analyzer,
  52. ifaceassert.Analyzer,
  53. loopclosure.Analyzer,
  54. lostcancel.Analyzer,
  55. nilfunc.Analyzer,
  56. printf.Analyzer,
  57. shift.Analyzer,
  58. stdmethods.Analyzer,
  59. stringintconv.Analyzer,
  60. structtag.Analyzer,
  61. tests.Analyzer,
  62. testinggoroutine.Analyzer,
  63. unmarshal.Analyzer,
  64. unreachable.Analyzer,
  65. // False positives when using Windows DLL procs.
  66. // https://github.com/golang/go/issues/41205
  67. // unsafeptr.Analyzer,
  68. unusedresult.Analyzer)
  69. for _, v := range simple.Analyzers {
  70. analyzers = append(analyzers, v)
  71. }
  72. for _, v := range staticcheck.Analyzers {
  73. analyzers = append(analyzers, v)
  74. }
  75. for _, v := range stylecheck.Analyzers {
  76. analyzers = append(analyzers, v)
  77. }
  78. multichecker.Main(analyzers...)
  79. }