full diff: https://github.com/dominikh/go-tools/compare/2019.2.3...2020.1.3
Also updates tests to accomodate updated rules:
--- FAIL: TestSourcesFromTestdataWithIssuesDir/staticcheck.go (0.43s)
linters_test.go:137: [run --disable-all --print-issued-lines=false --print-linter-name=false --out-format=line-number --max-same-issues=10 -Estaticcheck --no-config testdata/staticcheck.go]
linters_test.go:33:
Error Trace: linters_test.go:33
linters_test.go:138
linters_test.go:53
Error: Received unexpected error:
staticcheck.go:11: no match for `self-assignment of x to x` vs ["SA4006: this value of `x` is never used"] in:
staticcheck.go:11:2: SA4006: this value of `x` is never used
unmatched errors
staticcheck.go:11:2: SA4006: this value of `x` is never used
Test: TestSourcesFromTestdataWithIssuesDir/staticcheck.go
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* update staticcheck
Don't fork staticcheck: use the upstream version.
Remove unneeded SSA loading.
* Cache go/analysis facts
Don't load unneeded packages for go/analysis.
Repeated run of go/analysis linters now 10x faster
(2s vs 20s on this repo) than before.
Also do following improvements:
- show proper sublinter name for megacheck sublinters
- refactor and make more simple and robust megacheck
merging/optimizing
- improve handling of unknown linter names in //nolint directives
- minimize diff of our megacheck version from the upstream,
https://github.com/golang/go/issues/29612 blocks usage of the upstream
version
- support the new `stylecheck` linter
- improve tests coverage for megacheck and nolint related cases
- update and use upstream versions of unparam and interfacer instead of forked
ones
- don't use golangci/tools repo anymore
- fix newly found issues after updating linters
Also should be noted that megacheck works much faster and consumes less
memory in the newest release, therefore golangci-lint works noticeably
faster and consumes less memory for large repos.
Relates: #314