-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
govet: add more analyzers #759
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! 🎉
@@ -41,18 +49,26 @@ func getAllAnalyzers() []*analysis.Analyzer { | |||
atomic.Analyzer, | |||
atomicalign.Analyzer, | |||
bools.Analyzer, | |||
buildssa.Analyzer, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but this analyzer in internal and exists just for building SSA: it reports no issues
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we automatically filter internal analyzers by some condition?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know how to do it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like the following should work:
func isInternal(a *analysis.Analyzer) bool {
return a.ResultType != nil
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've created the #763 to address this issue.
I still want to import every analyzer and explicitly filter external ones, seems like it is most maintainable approach.
buildtag.Analyzer, | ||
cgocall.Analyzer, | ||
composite.Analyzer, | ||
copylock.Analyzer, | ||
ctrlflow.Analyzer, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the same
httpresponse.Analyzer, | ||
inspect.Analyzer, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess it's internal too
errorsas.Analyzer, | ||
findcall.Analyzer, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess this reports no issues too
$ git cherry --abbrev -v 0af0999fabfb ee9bf5809ead + abd8436 all: enable Go modules on CI (golangci#753) + 3c9d0fb checkers: recognize //line and //nolint in commentFormatting (golangci#756) + 0b517d7 checkers: extend deprecatedComment patterns (golangci#757) + 09100f6 checkers: use astcast package instead of coerce.go (golangci#758) + 2e9e97f checker: simplify boolExprSimplify (golangci#759) + 575701e make: add go-consistent to CI checks list (golangci#761) + b55f431 checkers: fix unlambda handling of builtins (golangci#763) + 5a7dee3 checker: handle lambdas properly in boolExprSimplify (golangci#765) + 5ce3939 checkers: teach boolExprSimplify a few new tricks (golangci#766) + 04d160f checkers: add new patterns to boolExprSimplify (golangci#768) + 09582e2 make: collect coverprofile separately from goveralls (golangci#769) + d8d0ee4 checkers: recognize NOTE pattern in deprecatedComment (golangci#770) + 12f0f85 Update copyright notice to 2019 (golangci#771) + f54bdb6 checkers: add stringXbytes checker + 170d65c checkers: followup for golangci#773 (golangci#774) + 84e9e83 checkers: make stringXbytes more linear (golangci#775) + a800815 checkers: add Depreacted typo pattern (golangci#776) + 6751be9 checkers: add hexLiterals (golangci#772) + ac61906 checkers: add typeAssertChain checker (golangci#782) + d19dbf1 checkers: add codegenComment checker (golangci#783) + d82b576 checkers: proper pkg/obj check for flagName (golangci#786) + dfcf754 ci: enable integration tests (golangci#787) + 5dafc45 checkers: fix equalFold false positive (golangci#788) + ed5e8e7 checkers: refactor and fix hexLiteral checker (golangci#789) + e704e07 checkers: add argOrder checker (golangci#790) + 34c1dc8 checkers: add Split handling to argOrder checker (golangci#791) + cbe095d checkers: add math.Max and math.Min to dupArg (golangci#792) + c986ee5 checkers: add checkers info fields test (golangci#794) + 66e5832 cmd/makedocs: use lintpack, fix build (golangci#793) + 6bce9d0 cmd/makedocs: add enabled/disabled by default info (golangci#795) + 4adbf9a checkers: simplify flagName (golangci#799) + 07de34a checkers: add octalLiteral checker (golangci#798) + 765907a cmd/makedocs: add checker param docs (golangci#796) + ee9bf58 cmd/makedocs: fix headers formatting (golangci#803)
This allows enabling more analyzers.
No defaults were changed.
Command that helped me to produce full list: