From c0b6b2556c779417390675f1c65b0b91a82a9edd Mon Sep 17 00:00:00 2001 From: sanposhiho Date: Wed, 13 Jan 2021 18:14:02 +0900 Subject: [PATCH 1/8] Add linter wastedassign --- go.mod | 3 +- go.sum | 5 ++ pkg/golinters/wastedassign.go | 20 ++++++ pkg/lint/lintersdb/manager.go | 7 ++ test/testdata/wastedassign.go | 131 ++++++++++++++++++++++++++++++++++ 5 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 pkg/golinters/wastedassign.go create mode 100644 test/testdata/wastedassign.go diff --git a/go.mod b/go.mod index ecb318aec6d4..1a355fef93f3 100644 --- a/go.mod +++ b/go.mod @@ -54,7 +54,8 @@ require ( github.com/polyfloyd/go-errorlint v0.0.0-20201127212506-19bd8db6546f github.com/ryancurrah/gomodguard v1.2.0 github.com/ryanrolds/sqlclosecheck v0.3.0 - github.com/securego/gosec/v2 v2.6.1 + github.com/sanposhiho/wastedassign v0.1.1 + github.com/securego/gosec/v2 v2.5.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.21.1 github.com/sirupsen/logrus v1.7.0 diff --git a/go.sum b/go.sum index 181e1417edab..3dcf3cf9d82d 100644 --- a/go.sum +++ b/go.sum @@ -353,6 +353,10 @@ github.com/ryancurrah/gomodguard v1.2.0/go.mod h1:rNqbC4TOIdUDcVMSIpNNAzTbzXAZa6 github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sanposhiho/tools v0.4.5 h1:pXf98dp7iQLmfXcDKDXUyAAjLYcZc9AENSGaU2OnNNI= +github.com/sanposhiho/tools v0.4.5/go.mod h1:59aVZoWPC49+9aLqjfYxCX6iyckGwaz+LaP6nI95s+s= +github.com/sanposhiho/wastedassign v0.1.1 h1:jZQJ07Ij4XPeUPEEXdKfY4LQSm30sFsn3RBqPzEShQc= +github.com/sanposhiho/wastedassign v0.1.1/go.mod h1:ECsgCbrlynzC4HE19/KAi7+o+StD2cGFQKeo1flcDTA= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/securego/gosec/v2 v2.6.1 h1:+KCw+uz16FYfFyJ/A5aU6uP7mnrL+j1TbDnk1yN+8R0= github.com/securego/gosec/v2 v2.6.1/go.mod h1:I76p3NTHBXsGhybUW+cEQ692q2Vp+A0Z6ZLzDIZy+Ao= @@ -582,6 +586,7 @@ golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201011145850-ed2f50202694/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= diff --git a/pkg/golinters/wastedassign.go b/pkg/golinters/wastedassign.go new file mode 100644 index 000000000000..87a3452ae354 --- /dev/null +++ b/pkg/golinters/wastedassign.go @@ -0,0 +1,20 @@ +package golinters + +import ( + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" + "github.com/sanposhiho/wastedassign" + "golang.org/x/tools/go/analysis" +) + +func NewWastedAssign() *goanalysis.Linter { + analyzers := []*analysis.Analyzer{ + wastedassign.Analyzer, + } + + return goanalysis.NewLinter( + "wastedassign", + "wastedassign finds wasted assignment statements.", + analyzers, + nil, + ).WithLoadMode(goanalysis.LoadModeTypesInfo) +} diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 035ab151c626..76fb0f63007e 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -367,6 +367,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { linter.NewConfig(golinters.NewPredeclared(predeclaredCfg)). WithPresets(linter.PresetStyle). WithURL("https://github.com/nishanths/predeclared"), +<<<<<<< HEAD linter.NewConfig(golinters.NewRevive(reviveCfg)). WithPresets(linter.PresetStyle). WithURL("https://github.com/mgechev/revive"), @@ -374,6 +375,12 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetBugs). WithLoadForGoAnalysis(). WithURL("https://github.com/charithe/durationcheck"), +======= + linter.NewConfig(golinters.NewWastedAssign()). + WithLoadForGoAnalysis(). + WithPresets(linter.PresetStyle). + WithURL("https://github.com/sanposhiho/wastedassign"), +>>>>>>> efdda8eb... Add linter wastedassign // nolintlint must be last because it looks at the results of all the previous linters for unused nolint directives linter.NewConfig(golinters.NewNoLintLint()). diff --git a/test/testdata/wastedassign.go b/test/testdata/wastedassign.go new file mode 100644 index 000000000000..d033768f4c86 --- /dev/null +++ b/test/testdata/wastedassign.go @@ -0,0 +1,131 @@ +//args: -Ewastedassign +package testdata + +import ( + "strings" +) + +func p(x int) int { + return x + 1 +} + +func multiple(val interface{}, times uint) interface{} { + + switch hogehoge := val.(type) { + case int: + return 12 + case string: + return strings.Repeat(hogehoge, int(times)) + default: + return nil + } +} + +func noUseParams(params string) int { + a := 12 + println(a) + return a +} + +func f(param int) int { + println(param) + useOutOfIf := 1212121 // ERROR "wasted assignment" + ret := 0 + if false { + useOutOfIf = 200 // ERROR "reassigned, but never used afterwards" + return 0 + } else if param == 100 { + useOutOfIf = 100 // ERROR "wasted assignment" + useOutOfIf = 201 + useOutOfIf = p(useOutOfIf) + useOutOfIf += 200 // ERROR "wasted assignment" + } else { + useOutOfIf = 100 + useOutOfIf += 100 + useOutOfIf = p(useOutOfIf) + useOutOfIf += 200 // ERROR "wasted assignment" + } + + if false { + useOutOfIf = 200 // ERROR "reassigned, but never used afterwards" + return 0 + } else if param == 200 { + useOutOfIf = 100 // ERROR "wasted assignment" + useOutOfIf = 201 + useOutOfIf = p(useOutOfIf) + useOutOfIf += 200 + } else { + useOutOfIf = 100 + useOutOfIf += 100 + useOutOfIf = p(useOutOfIf) + useOutOfIf += 200 + } + println(useOutOfIf) + useOutOfIf = 192 + useOutOfIf += 100 + useOutOfIf += 200 // ERROR "reassigned, but never used afterwards" + return ret +} + +func checkLoopTest() int { + hoge := 12 + noUse := 1111 + println(noUse) + + noUse = 1111 // ERROR "reassigned, but never used afterwards" + for { + if hoge == 14 { + break + } + hoge = hoge + 1 + } + return hoge +} + +func r(param int) int { + println(param) + useOutOfIf := 1212121 + ret := 0 + if false { + useOutOfIf = 200 // ERROR "reassigned, but never used afterwards" + return 0 + } else if param == 100 { + ret = useOutOfIf + } else if param == 200 { + useOutOfIf = 100 // ERROR "wasted assignment" + useOutOfIf = 100 + useOutOfIf = p(useOutOfIf) + useOutOfIf += 200 // ERROR "wasted assignment" + } + useOutOfIf = 12 + println(useOutOfIf) + useOutOfIf = 192 + useOutOfIf += 100 + useOutOfIf += 200 // ERROR "reassigned, but never used afterwards" + return ret +} + +func mugen() { + var i int + var hoge int + for { + hoge = 5 // ERROR "reassigned, but never used afterwards" + } + + println(i) + println(hoge) + return +} + +func noMugen() { + var i int + var hoge int + for { + hoge = 5 + break + } + + println(i) + println(hoge) + return +} From c8557ea7631bfdaf4b6fe6643bf4f5e9ad691c60 Mon Sep 17 00:00:00 2001 From: sanposhiho Date: Wed, 13 Jan 2021 18:27:36 +0900 Subject: [PATCH 2/8] Fix import order --- pkg/golinters/wastedassign.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/golinters/wastedassign.go b/pkg/golinters/wastedassign.go index 87a3452ae354..9ce1afdd4810 100644 --- a/pkg/golinters/wastedassign.go +++ b/pkg/golinters/wastedassign.go @@ -1,9 +1,10 @@ package golinters import ( - "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/sanposhiho/wastedassign" "golang.org/x/tools/go/analysis" + + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" ) func NewWastedAssign() *goanalysis.Linter { From 1139493d28f51c613aacad1c0124242f38b07fc9 Mon Sep 17 00:00:00 2001 From: sanposhiho Date: Wed, 13 Jan 2021 18:36:17 +0900 Subject: [PATCH 3/8] Fix test functions name --- test/testdata/wastedassign.go | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/test/testdata/wastedassign.go b/test/testdata/wastedassign.go index d033768f4c86..30c16e3747cd 100644 --- a/test/testdata/wastedassign.go +++ b/test/testdata/wastedassign.go @@ -27,7 +27,7 @@ func noUseParams(params string) int { return a } -func f(param int) int { +func manyif(param int) int { println(param) useOutOfIf := 1212121 // ERROR "wasted assignment" ret := 0 @@ -82,30 +82,7 @@ func checkLoopTest() int { return hoge } -func r(param int) int { - println(param) - useOutOfIf := 1212121 - ret := 0 - if false { - useOutOfIf = 200 // ERROR "reassigned, but never used afterwards" - return 0 - } else if param == 100 { - ret = useOutOfIf - } else if param == 200 { - useOutOfIf = 100 // ERROR "wasted assignment" - useOutOfIf = 100 - useOutOfIf = p(useOutOfIf) - useOutOfIf += 200 // ERROR "wasted assignment" - } - useOutOfIf = 12 - println(useOutOfIf) - useOutOfIf = 192 - useOutOfIf += 100 - useOutOfIf += 200 // ERROR "reassigned, but never used afterwards" - return ret -} - -func mugen() { +func infinity() { var i int var hoge int for { @@ -117,7 +94,7 @@ func mugen() { return } -func noMugen() { +func infinity2() { var i int var hoge int for { From 0110a1b2be6855f47f53f2e3b55ae4d246ca7d42 Mon Sep 17 00:00:00 2001 From: sanposhiho Date: Wed, 13 Jan 2021 18:38:46 +0900 Subject: [PATCH 4/8] Rename some test functions name so that mean test case collectly --- test/testdata/wastedassign.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/testdata/wastedassign.go b/test/testdata/wastedassign.go index 30c16e3747cd..923ab7aae0ed 100644 --- a/test/testdata/wastedassign.go +++ b/test/testdata/wastedassign.go @@ -9,19 +9,18 @@ func p(x int) int { return x + 1 } -func multiple(val interface{}, times uint) interface{} { - - switch hogehoge := val.(type) { +func typeSwitchNoError(val interface{}, times uint) interface{} { + switch hoge := val.(type) { case int: return 12 case string: - return strings.Repeat(hogehoge, int(times)) + return strings.Repeat(hoge, int(times)) default: return nil } } -func noUseParams(params string) int { +func noUseParamsNoError(params string) int { a := 12 println(a) return a From b406ebde8db3562efedd94024b744dbe5023aee8 Mon Sep 17 00:00:00 2001 From: sanposhiho Date: Sun, 21 Feb 2021 23:25:20 +0900 Subject: [PATCH 5/8] Fix: use new version wastedassign --- go.mod | 2 +- go.sum | 15 +++++++++++---- pkg/lint/lintersdb/manager.go | 3 --- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 1a355fef93f3..3baa2274d1ee 100644 --- a/go.mod +++ b/go.mod @@ -54,7 +54,7 @@ require ( github.com/polyfloyd/go-errorlint v0.0.0-20201127212506-19bd8db6546f github.com/ryancurrah/gomodguard v1.2.0 github.com/ryanrolds/sqlclosecheck v0.3.0 - github.com/sanposhiho/wastedassign v0.1.1 + github.com/sanposhiho/wastedassign v0.1.2 github.com/securego/gosec/v2 v2.5.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.21.1 diff --git a/go.sum b/go.sum index 3dcf3cf9d82d..73b528386113 100644 --- a/go.sum +++ b/go.sum @@ -169,6 +169,7 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gookit/color v1.3.1/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ= github.com/gookit/color v1.3.6/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -286,10 +287,13 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= +github.com/mozilla/tls-observatory v0.0.0-20200317151703-4fa42e1c2dee/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mozilla/tls-observatory v0.0.0-20201209171846-0547674fceff/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nakabonne/nestif v0.3.0 h1:+yOViDGhg8ygGrmII72nV9B/zGxY188TYpfolntsaPw= github.com/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c= +github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d h1:AREM5mwr4u1ORQBMvzfzBgpsctsbQikCVpvC+tX285E= +github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/nbutton23/zxcvbn-go v0.0.0-20201221231540-e56b841a3c88 h1:o+O3Cd1HO9CTgxE3/C8p5I5Y4C0yYWbF8d4IkfOLtcQ= github.com/nbutton23/zxcvbn-go v0.0.0-20201221231540-e56b841a3c88/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= @@ -305,10 +309,12 @@ github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.14.2 h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M= github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.4 h1:NiTx7EEvBzu9sFOD1zORteLSt3o8gnlvZZwSE9TnY9U= github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuKHUCQ= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -353,11 +359,11 @@ github.com/ryancurrah/gomodguard v1.2.0/go.mod h1:rNqbC4TOIdUDcVMSIpNNAzTbzXAZa6 github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sanposhiho/tools v0.4.5 h1:pXf98dp7iQLmfXcDKDXUyAAjLYcZc9AENSGaU2OnNNI= -github.com/sanposhiho/tools v0.4.5/go.mod h1:59aVZoWPC49+9aLqjfYxCX6iyckGwaz+LaP6nI95s+s= -github.com/sanposhiho/wastedassign v0.1.1 h1:jZQJ07Ij4XPeUPEEXdKfY4LQSm30sFsn3RBqPzEShQc= -github.com/sanposhiho/wastedassign v0.1.1/go.mod h1:ECsgCbrlynzC4HE19/KAi7+o+StD2cGFQKeo1flcDTA= +github.com/sanposhiho/wastedassign v0.1.2 h1:7CnfROmb3eezzJkfT7NJ0B9Ffpog1SjZZY/4665j/L8= +github.com/sanposhiho/wastedassign v0.1.2/go.mod h1:hN8kDBTHSiyIyfeMZ9kk0XTBpsjl46meI+XeXx2mF50= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/securego/gosec/v2 v2.5.0 h1:kjfXLeKdk98gBe2+eYRFMpC4+mxmQQtbidpiiOQ69Qc= +github.com/securego/gosec/v2 v2.5.0/go.mod h1:L/CDXVntIff5ypVHIkqPXbtRpJiNCh6c6Amn68jXDjo= github.com/securego/gosec/v2 v2.6.1 h1:+KCw+uz16FYfFyJ/A5aU6uP7mnrL+j1TbDnk1yN+8R0= github.com/securego/gosec/v2 v2.6.1/go.mod h1:I76p3NTHBXsGhybUW+cEQ692q2Vp+A0Z6ZLzDIZy+Ao= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= @@ -589,6 +595,7 @@ golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82u golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201007032633-0806396f153e/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201011145850-ed2f50202694/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201114224030-61ea331ec02b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 76fb0f63007e..aaee88bc596a 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -367,7 +367,6 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { linter.NewConfig(golinters.NewPredeclared(predeclaredCfg)). WithPresets(linter.PresetStyle). WithURL("https://github.com/nishanths/predeclared"), -<<<<<<< HEAD linter.NewConfig(golinters.NewRevive(reviveCfg)). WithPresets(linter.PresetStyle). WithURL("https://github.com/mgechev/revive"), @@ -375,12 +374,10 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetBugs). WithLoadForGoAnalysis(). WithURL("https://github.com/charithe/durationcheck"), -======= linter.NewConfig(golinters.NewWastedAssign()). WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle). WithURL("https://github.com/sanposhiho/wastedassign"), ->>>>>>> efdda8eb... Add linter wastedassign // nolintlint must be last because it looks at the results of all the previous linters for unused nolint directives linter.NewConfig(golinters.NewNoLintLint()). From 528a5791b174d8b2e300e7ac5e42009e8f9c2cc9 Mon Sep 17 00:00:00 2001 From: sanposhiho Date: Mon, 22 Feb 2021 00:37:17 +0900 Subject: [PATCH 6/8] fix gosec version --- go.mod | 2 +- go.sum | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/go.mod b/go.mod index 3baa2274d1ee..3de56e2d624b 100644 --- a/go.mod +++ b/go.mod @@ -55,7 +55,7 @@ require ( github.com/ryancurrah/gomodguard v1.2.0 github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign v0.1.2 - github.com/securego/gosec/v2 v2.5.0 + github.com/securego/gosec/v2 v2.6.1 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.21.1 github.com/sirupsen/logrus v1.7.0 diff --git a/go.sum b/go.sum index 73b528386113..74b3aadb207c 100644 --- a/go.sum +++ b/go.sum @@ -169,7 +169,6 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gookit/color v1.3.1/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ= github.com/gookit/color v1.3.6/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -287,13 +286,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= -github.com/mozilla/tls-observatory v0.0.0-20200317151703-4fa42e1c2dee/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mozilla/tls-observatory v0.0.0-20201209171846-0547674fceff/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nakabonne/nestif v0.3.0 h1:+yOViDGhg8ygGrmII72nV9B/zGxY188TYpfolntsaPw= github.com/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c= -github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d h1:AREM5mwr4u1ORQBMvzfzBgpsctsbQikCVpvC+tX285E= -github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/nbutton23/zxcvbn-go v0.0.0-20201221231540-e56b841a3c88 h1:o+O3Cd1HO9CTgxE3/C8p5I5Y4C0yYWbF8d4IkfOLtcQ= github.com/nbutton23/zxcvbn-go v0.0.0-20201221231540-e56b841a3c88/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= @@ -309,12 +305,10 @@ github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.14.2 h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M= github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.4 h1:NiTx7EEvBzu9sFOD1zORteLSt3o8gnlvZZwSE9TnY9U= github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuKHUCQ= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -362,8 +356,6 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/sanposhiho/wastedassign v0.1.2 h1:7CnfROmb3eezzJkfT7NJ0B9Ffpog1SjZZY/4665j/L8= github.com/sanposhiho/wastedassign v0.1.2/go.mod h1:hN8kDBTHSiyIyfeMZ9kk0XTBpsjl46meI+XeXx2mF50= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/securego/gosec/v2 v2.5.0 h1:kjfXLeKdk98gBe2+eYRFMpC4+mxmQQtbidpiiOQ69Qc= -github.com/securego/gosec/v2 v2.5.0/go.mod h1:L/CDXVntIff5ypVHIkqPXbtRpJiNCh6c6Amn68jXDjo= github.com/securego/gosec/v2 v2.6.1 h1:+KCw+uz16FYfFyJ/A5aU6uP7mnrL+j1TbDnk1yN+8R0= github.com/securego/gosec/v2 v2.6.1/go.mod h1:I76p3NTHBXsGhybUW+cEQ692q2Vp+A0Z6ZLzDIZy+Ao= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= @@ -595,7 +587,6 @@ golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82u golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201007032633-0806396f153e/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201011145850-ed2f50202694/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201114224030-61ea331ec02b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= From 0858b485fc275089d8607171bf33476885b43767 Mon Sep 17 00:00:00 2001 From: sanposhiho Date: Mon, 22 Feb 2021 00:50:06 +0900 Subject: [PATCH 7/8] Fix: update wastedassign version --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 3de56e2d624b..13c2edb28c84 100644 --- a/go.mod +++ b/go.mod @@ -54,7 +54,7 @@ require ( github.com/polyfloyd/go-errorlint v0.0.0-20201127212506-19bd8db6546f github.com/ryancurrah/gomodguard v1.2.0 github.com/ryanrolds/sqlclosecheck v0.3.0 - github.com/sanposhiho/wastedassign v0.1.2 + github.com/sanposhiho/wastedassign v0.1.3 github.com/securego/gosec/v2 v2.6.1 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.21.1 diff --git a/go.sum b/go.sum index 74b3aadb207c..42384ba47858 100644 --- a/go.sum +++ b/go.sum @@ -353,8 +353,8 @@ github.com/ryancurrah/gomodguard v1.2.0/go.mod h1:rNqbC4TOIdUDcVMSIpNNAzTbzXAZa6 github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sanposhiho/wastedassign v0.1.2 h1:7CnfROmb3eezzJkfT7NJ0B9Ffpog1SjZZY/4665j/L8= -github.com/sanposhiho/wastedassign v0.1.2/go.mod h1:hN8kDBTHSiyIyfeMZ9kk0XTBpsjl46meI+XeXx2mF50= +github.com/sanposhiho/wastedassign v0.1.3 h1:qIMpTh4NGZYRbFJ+DSpLoVn8F4SLciX2afRvXPefC7w= +github.com/sanposhiho/wastedassign v0.1.3/go.mod h1:LGpq5Hsv74QaqM47WtIsRSF/ik9kqk07kchgv66tLVE= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/securego/gosec/v2 v2.6.1 h1:+KCw+uz16FYfFyJ/A5aU6uP7mnrL+j1TbDnk1yN+8R0= github.com/securego/gosec/v2 v2.6.1/go.mod h1:I76p3NTHBXsGhybUW+cEQ692q2Vp+A0Z6ZLzDIZy+Ao= @@ -584,7 +584,6 @@ golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201011145850-ed2f50202694/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= From 48eed73f51caa805502bee065d838afeee32a6e7 Mon Sep 17 00:00:00 2001 From: Sergey Vilgelm Date: Sun, 21 Feb 2021 14:32:16 -0600 Subject: [PATCH 8/8] Update pkg/lint/lintersdb/manager.go change an order Co-authored-by: Ludovic Fernandez --- pkg/lint/lintersdb/manager.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index aaee88bc596a..60fec473ce34 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -375,8 +375,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithURL("https://github.com/charithe/durationcheck"), linter.NewConfig(golinters.NewWastedAssign()). - WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle). + WithLoadForGoAnalysis(). WithURL("https://github.com/sanposhiho/wastedassign"), // nolintlint must be last because it looks at the results of all the previous linters for unused nolint directives