21 Commits

Author SHA1 Message Date
Isaev Denis
6163a8a790
Support go1.13 ()
Setup Travis CI to run on go 1.12 and 1.13.
Update info about go versions in README.
Rebuild go.mod,go.sum on go1.13.
2019-09-09 21:54:56 +03:00
Denis Isaev
e39e8fb5d5 update x/tools
Significantly improve CPU and memory usage when not using SSA-powered linters.
Improve readability of go/packages errors.
Improve debugging capabilities and write doc about debugging.
2019-09-09 15:04:32 +03:00
Denis Isaev
7274db714c fix : update go-critic to fix deps
This update should fix go get issues because of deps.

go-critic:
$ git cherry -v c3db6069acc5
+ fe28ac328f474c02e2383ca2bf44a606929a7048 checkers: add integration
tests with cgo for dupImports ()
+ 48a15b03b630252319474ba5ddc8455d2aebf34f checkers: fix fold-ranges
for floats in boolExprSimplify ()
+ 7bf73388643eb226addf2d5ed8a2c104be244b2e checkers: fix "Output:"
false positive in commentedOutCode ()
+ f6f702b31734df26415c2bd135f272d1a34d2973 checkers: extend
yodaStyleExpr supported ops list ()
+ 07bf84df361735ad1d90f84e79eb60c8386325c7 fix dependencies ()
+ 1df30086654074503eab008bdde4f3ce1921128d checkers: fix collection
URL ()

x/tools:
$ git cherry -v 685fecacd0a0 521d6ed310dd | fgrep -v internal/lsp
+ fe54fb35175bb1c0c175e2335e23d7fa90ca987a apidiff: represent a Report as a list of Changes
+ 15bbd99efc6f20619676dec93f914d12e5139e83 all: run go mod tidy
+ bb3b3ca95aec36bfc4a5cb10b58022e64aca735b go/packages: add some documentation for extractPackage
+ 4bf14f7f0668366a4275c6ef5e99bd8e807da1d3 internal/span: fix off-by-one in ToUTF16Column
+ cb2dda6eabdf9160e66ca7293897f984154a7f8b go/packages: deduplicate file parsing
+ 9e44c1c403071e0c2831952513e7b948587d94af go/internal/gccgoimporter: update package to match std lib version
+ 36563e24a2627da92566d43aa1c7a2dd895fc60d cmd/vet: verify potentially-recursive Stringers are actually Stringers
+ 31fd60d6bfdcfb2861856aa5b333bb135f6bbfd8 x/tools/go/packages/packagestest: fix GOPROXY file URLs for Windows
+ 2d660fb8a000e1c288dc2f2150401b364922ebe9 go/packages/packagestest: fix GOPROXY file URLs for Windows
+ 7af746645d5165109de0b5cb499980c22812dfc2 internal/span: fix another off-by-one in ToUTF16Column
+ 9d4d845e86f14303813298ede731a971dd65b593 cmd/goimports: add -format-only flag
+ 83df196e5764ed2415c28c1f39ba6cb3db747da0 internal/span: add a filename only print for spans
+ 5cec639030af3a6ada2732d9bfa1d3731ed55106 go/analysis: proposed fact enumeration API
+ 9cb3dcf692a103de0fd68c26f4f04183e0933f7c internal/span: update the offset if the end offset should be valid but is not
+ 2d16b83fe98cd1bed9e2ce9fdc86bd438d14aab7 go/vcs: ignore "mod" VCS type
+ 95299016986435f846545c27f956768ad3c3cb2f lostcancel: do not analyze cancel variable which defined outside current function scope
+ 8a42e17289ea392d63892321ce1f40bd07efcc9f compilebench: clean up different benchmark types
+ eeb76a0c47a3b97e99f330dc14174ef14777d2ba compilebench: factor running build tool commands
+ 60140f09094406e46618ef436a26dd8394983503 compilebench: add a linker benchmark
+ e31d36578abb3d202c4007c3747bf8ebb7c51011 compilebench: handle missing MemStats more gracefully
+ d996b19ee77cd9c8df974510f23b0696cedf1ca1 go/analysis/analysistest: fix word usage
+ 73554e0f78058c37e5421bc48273a72400172221 go/analysis/passes: fix bugs discovered in std
+ 35884eef200b5fc81c9044f644a8d9d911262488 cmd/vet: print help to stdout only
+ 45e43b2cb4facd370abb846ebf35575161849f3b go/packages/packagestest: fix MustCopyFileTree so that file fragments are always slash form
+ d81a07b7e58487eed036bf115fa834653590d6cd go/analysis/passes/bools: eliminate quadratic runtime, output
+ 2a413a02cc735933997fa1b467a7b27bc1b82567 godoc/static: let client use vet check returned by /compile endpoint
+ 4789ca9922f080dd3a8fc3c74df1c1306db2bb0b go/analysis/internal/analysisflags: call gob.Register on deleted analyzers
+ d1a3278ee74994e9aa609e9e711c616bba677d5d godoc/util: serve SVG files raw
+ 1da8801a9502f29f3f03edfc3149b947e6e1913c godoc: declare small victory over the punched card tyranny
+ 757ca719ca9689950c69081c10c5300fbb8e35db imports: rename to internal/imports
+ 0133cac3176f225883c5d817146de8633ed07ebc cmd/goimports: reuse cached state
+ 26647e34d3c04fd3eaef6fb824493b00af7b1b26 imports: allow nil Options in Process
2019-06-10 11:33:31 +03:00
Linus Arver
127f89f072 update golang.org/x/tools
This brings in the upstream fix
1aadbdfdbb. (Upstream
issue is https://github.com/golang/go/issues/31163).

To create this commit, I did:

  vgo get golang.org/x/tools
  make update_deps
  cd cmd/golangci-lint
  go install -ldflags "-X 'main.version=$(git describe --tags)' -X 'main.commit=$(git rev-parse --short HEAD)' -X 'main.date=$(date)'"

Fixes 
2019-04-20 13:20:13 +03:00
Denis Isaev
8c1237b667 Use the newest go vet
The newest go vet based on go/analysis
2019-03-17 23:12:44 +03:00
Vitaly Isaev
0fdd91dc3d Update golang.org/x/tools package to fix false IllTyped error 2019-03-17 15:29:58 +03:00
Denis Isaev
b31cfd6c78
update go-critic
$ git cherry --abbrev -v 0af0999fabfb ee9bf5809ead
+ abd8436 all: enable Go modules on CI ()
+ 3c9d0fb checkers: recognize //line and //nolint in commentFormatting ()
+ 0b517d7 checkers: extend deprecatedComment patterns ()
+ 09100f6 checkers: use astcast package instead of coerce.go ()
+ 2e9e97f checker: simplify boolExprSimplify ()
+ 575701e make: add go-consistent to CI checks list ()
+ b55f431 checkers: fix unlambda handling of builtins ()
+ 5a7dee3 checker: handle lambdas properly in boolExprSimplify ()
+ 5ce3939 checkers: teach boolExprSimplify a few new tricks ()
+ 04d160f checkers: add new patterns to boolExprSimplify ()
+ 09582e2 make: collect coverprofile separately from goveralls ()
+ d8d0ee4 checkers: recognize NOTE pattern in deprecatedComment ()
+ 12f0f85 Update copyright notice to 2019 ()
+ f54bdb6 checkers: add stringXbytes checker
+ 170d65c checkers: followup for  ()
+ 84e9e83 checkers: make stringXbytes more linear ()
+ a800815 checkers: add Depreacted typo pattern ()
+ 6751be9 checkers: add hexLiterals ()
+ ac61906 checkers: add typeAssertChain checker ()
+ d19dbf1 checkers: add codegenComment checker ()
+ d82b576 checkers: proper pkg/obj check for flagName ()
+ dfcf754 ci: enable integration tests ()
+ 5dafc45 checkers: fix equalFold false positive ()
+ ed5e8e7 checkers: refactor and fix hexLiteral checker ()
+ e704e07 checkers: add argOrder checker ()
+ 34c1dc8 checkers: add Split handling to argOrder checker ()
+ cbe095d checkers: add math.Max and math.Min to dupArg ()
+ c986ee5 checkers: add checkers info fields test ()
+ 66e5832 cmd/makedocs: use lintpack, fix build ()
+ 6bce9d0 cmd/makedocs: add enabled/disabled by default info ()
+ 4adbf9a checkers: simplify flagName ()
+ 07de34a checkers: add octalLiteral checker ()
+ 765907a cmd/makedocs: add checker param docs ()
+ ee9bf58 cmd/makedocs: fix headers formatting ()
2019-02-11 09:35:41 +03:00
Denis Isaev
81cf48771e
Fix : update goimports
$ git cherry --abbrev -v d66bd3c5d5a6 379209517ffe | fgrep imports:
+ a06a922a imports: update zstdlib to Go 1.12
+ cb89afad imports: drop anything after a non identifier rune in package
names
2019-02-11 09:11:51 +03:00
Denis Isaev
9916a2fb79
Relates : update unparam
$ git cherry -v cc9d2fb52971 fbb59629db34
+ 7362051ae01a0e35956c077c3be5505c70edd200 testdata: add more regression
tests
+ a88ca0234e2c3732a53cd49514fb3877a5d9f1f5 properly record which methods
implement interfaces
+ b762b0b27fa23ebbdfc31df1af4097cfd89a17f6 work properly with method
wrapper functions
+ f59bb08c5c7429b88e0c6e2399b12e71e8d950db testdata: consistently use
tabs
+ 46a5101c55d03117b263b4c5161e5d01353311c1 replace more callgraph code
with plain SSA
+ 1679b9996abdc6431c2147a133e5223ebb86ea60 rewrite foo(bar()) code to
work without callgraph
+ 71b5df77c291f8c5ead5f9ff0a69e0eebf3ae5b2 rewrite "called in return"
code without callgraph
+ fc5b1c74f563d4f2f9ee7d91eda648fc7baebf67 check: replace last use of
callgraph
+ 229ad68a599e2622cf9d3bb87a385b158efe736f fix a minor false negative in
callExtract
+ fbb59629db34a0f69275bc336cc8c3a4dd9fbe5d fix up another false negative
in testdata
2019-02-11 09:02:56 +03:00
Jonathan Chappelow
01fb8231f9 unparam: update unparam, and go mod vendor
This updates the unparam linter to the current version that has fewer
false positives. The go.{mod,sum} files and the vendor folder are
updated as follows:

export GO111MODULE=on
go get -u mvdan.cc/unparam
go mod tidy
go mod vendor

The unparam callgraph algorithm is no longer selectable. Ref:
https://github.com/mvdan/unparam/commit/e6a6d1c5
This is the reason for removing the c.CallgraphAlgorithm(us.Algo) line
from pkg/golinters/unparam.go.
2019-02-11 13:48:53 +08:00
Denis Isaev
7705f82591 Update megacheck to the latest version
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: 
2019-01-08 21:16:15 +03:00
David López
37e6995b45 lintpack/gocritic: update lintpack & gocritic versions
update lintpack & gocritic versions to support all the new gocritic checks
2018-12-22 15:34:16 +03:00
Denis Isaev
c02a6daa5c Fix : fix goimports performance with modules
Apply https://go-review.googlesource.com/c/tools/+/132598/ as a
temporary fix before a proper fix is in golang.org/x/tools
2018-11-05 12:37:54 +03:00
Denis Isaev
17508ab904
update golang.org/x/tools 2018-10-28 18:03:14 +03:00
Denis Isaev
0421bac259 Fix , fix : use go/packages
Use go/packages instead of x/tools/loader: it allows to work
with go modules and speedups loading of packages with the help
of build cache.

A lot of linters became "fast": they are enabled by --fast now and
work in 1-2 seconds. Only unparam, interfacer and megacheck
are "slow" linters now.

Average project is analyzed 20-40% faster than before if all linters are
enabled! If we enable all linters except unparam, interfacer and
megacheck analysis is 10-20x faster!
2018-10-28 17:55:15 +03:00
Cezar Sa Espinola
0e2be20016 vendor: update golang.org/x/tools including goimports formatting changes
A recent change was introduced in goimports improving how it sort and
format imports in https://go-review.googlesource.com/c/tools/+/116795

This commit updates the vendored version of the golang.org/x/tools
repository to include these changes.
2018-10-20 10:40:40 +03:00
Denis Isaev
0ef36f43d5 Prepare for : use forked repos without aliases 2018-09-02 14:46:54 +03:00
Denis Isaev
c5721f50d0 update Gopkg.lock for a newer dep format and update x/tools package 2018-07-28 23:47:22 +03:00
Denis Isaev
a6b91ccc77 Fix : support unparam linter
1. Support unparam linter and fix found issues
2. Replace forked mvdan.cc/lint and mvdan.cc/interfacer with the
upstream ones
3. Minimize forked megacheck: move the most of it's code to this repo
4. Use golang.org/x/tools/go/ssa import path instead of custom fork
paths
5. In golang.org/x/tools/go/{ssa,callgraph} use changed code from
honnef.co/go/tools
6. Add megacheck.check-unexported option: it found some issues in
the repo, fixed them all
2018-06-30 12:24:07 +03:00
golangci
e65203921b support golint 2018-05-06 07:20:12 +03:00
golangci
3f1787bf89 support errcheck 2018-05-05 19:43:52 +03:00