analysis.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package stylecheck
  2. import (
  3. "flag"
  4. "golang.org/x/tools/go/analysis"
  5. "golang.org/x/tools/go/analysis/passes/inspect"
  6. "honnef.co/go/tools/config"
  7. "honnef.co/go/tools/facts"
  8. "honnef.co/go/tools/internal/passes/buildssa"
  9. "honnef.co/go/tools/lint/lintutil"
  10. )
  11. func newFlagSet() flag.FlagSet {
  12. fs := flag.NewFlagSet("", flag.PanicOnError)
  13. fs.Var(lintutil.NewVersionFlag(), "go", "Target Go version")
  14. return *fs
  15. }
  16. var Analyzers = map[string]*analysis.Analyzer{
  17. "ST1000": {
  18. Name: "ST1000",
  19. Run: CheckPackageComment,
  20. Doc: Docs["ST1000"].String(),
  21. Requires: []*analysis.Analyzer{},
  22. Flags: newFlagSet(),
  23. },
  24. "ST1001": {
  25. Name: "ST1001",
  26. Run: CheckDotImports,
  27. Doc: Docs["ST1001"].String(),
  28. Requires: []*analysis.Analyzer{facts.Generated, config.Analyzer},
  29. Flags: newFlagSet(),
  30. },
  31. "ST1003": {
  32. Name: "ST1003",
  33. Run: CheckNames,
  34. Doc: Docs["ST1003"].String(),
  35. Requires: []*analysis.Analyzer{facts.Generated, config.Analyzer},
  36. Flags: newFlagSet(),
  37. },
  38. "ST1005": {
  39. Name: "ST1005",
  40. Run: CheckErrorStrings,
  41. Doc: Docs["ST1005"].String(),
  42. Requires: []*analysis.Analyzer{buildssa.Analyzer},
  43. Flags: newFlagSet(),
  44. },
  45. "ST1006": {
  46. Name: "ST1006",
  47. Run: CheckReceiverNames,
  48. Doc: Docs["ST1006"].String(),
  49. Requires: []*analysis.Analyzer{buildssa.Analyzer, facts.Generated},
  50. Flags: newFlagSet(),
  51. },
  52. "ST1008": {
  53. Name: "ST1008",
  54. Run: CheckErrorReturn,
  55. Doc: Docs["ST1008"].String(),
  56. Requires: []*analysis.Analyzer{buildssa.Analyzer},
  57. Flags: newFlagSet(),
  58. },
  59. "ST1011": {
  60. Name: "ST1011",
  61. Run: CheckTimeNames,
  62. Doc: Docs["ST1011"].String(),
  63. Flags: newFlagSet(),
  64. },
  65. "ST1012": {
  66. Name: "ST1012",
  67. Run: CheckErrorVarNames,
  68. Doc: Docs["ST1012"].String(),
  69. Requires: []*analysis.Analyzer{config.Analyzer},
  70. Flags: newFlagSet(),
  71. },
  72. "ST1013": {
  73. Name: "ST1013",
  74. Run: CheckHTTPStatusCodes,
  75. Doc: Docs["ST1013"].String(),
  76. Requires: []*analysis.Analyzer{facts.Generated, facts.TokenFile, config.Analyzer},
  77. Flags: newFlagSet(),
  78. },
  79. "ST1015": {
  80. Name: "ST1015",
  81. Run: CheckDefaultCaseOrder,
  82. Doc: Docs["ST1015"].String(),
  83. Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated, facts.TokenFile},
  84. Flags: newFlagSet(),
  85. },
  86. "ST1016": {
  87. Name: "ST1016",
  88. Run: CheckReceiverNamesIdentical,
  89. Doc: Docs["ST1016"].String(),
  90. Requires: []*analysis.Analyzer{buildssa.Analyzer},
  91. Flags: newFlagSet(),
  92. },
  93. "ST1017": {
  94. Name: "ST1017",
  95. Run: CheckYodaConditions,
  96. Doc: Docs["ST1017"].String(),
  97. Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated, facts.TokenFile},
  98. Flags: newFlagSet(),
  99. },
  100. "ST1018": {
  101. Name: "ST1018",
  102. Run: CheckInvisibleCharacters,
  103. Doc: Docs["ST1018"].String(),
  104. Requires: []*analysis.Analyzer{inspect.Analyzer},
  105. Flags: newFlagSet(),
  106. },
  107. }