Skip to content

Commit 306cbb0

Browse files
authored
Upgrading to go-critic v0.5.0 (golangci#1205)
1 parent 01b566a commit 306cbb0

File tree

5 files changed

+30
-33
lines changed

5 files changed

+30
-33
lines changed

go.mod

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ require (
88
github.com/bombsimon/wsl/v3 v3.1.0
99
github.com/denis-tingajkin/go-header v0.3.1
1010
github.com/fatih/color v1.9.0
11-
github.com/go-critic/go-critic v0.4.3
12-
github.com/go-lintpack/lintpack v0.5.2
11+
github.com/go-critic/go-critic v0.5.0
1312
github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b
1413
github.com/gofrs/flock v0.7.1
1514
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2

go.sum

+6-2
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL
6060
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
6161
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
6262
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
63-
github.com/go-critic/go-critic v0.4.3 h1:sGEEdiuvLV0OC7/yC6MnK3K6LCPBplspK45B0XVdFAc=
64-
github.com/go-critic/go-critic v0.4.3/go.mod h1:j4O3D4RoIwRqlZw5jJpx0BNfXWWbpcJoKu5cYSe4YmQ=
63+
github.com/go-critic/go-critic v0.5.0 h1:Ic2p5UCl5fX/2WX2w8nroPpPhxRNsNTMlJzsu/uqwnM=
64+
github.com/go-critic/go-critic v0.5.0/go.mod h1:4jeRh3ZAVnRYhuWdOEvwzVqLUpxMSoAT0xZ74JsTPlo=
6565
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
6666
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
6767
github.com/go-lintpack/lintpack v0.5.2 h1:DI5mA3+eKdWeJ40nU4d6Wc26qmdG8RCi/btYq0TuRN0=
@@ -95,6 +95,8 @@ github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUD
9595
github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8=
9696
github.com/go-toolsmith/typep v1.0.0 h1:zKymWyA1TRYvqYrYDrfEMZULyrhcnGY3x7LDKU2XQaA=
9797
github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
98+
github.com/go-toolsmith/typep v1.0.2 h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk=
99+
github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
98100
github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo=
99101
github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
100102
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
@@ -312,6 +314,8 @@ github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c h1:JoUA0uz
312314
github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI=
313315
github.com/quasilyte/go-ruleguard v0.1.2-0.20200318202121-b00d7a75d3d8 h1:DvnesvLtRPQOvaUbfXfh0tpMHg29by0H7F2U+QIkSu8=
314316
github.com/quasilyte/go-ruleguard v0.1.2-0.20200318202121-b00d7a75d3d8/go.mod h1:CGFX09Ci3pq9QZdj86B+VGIdNj4VyCo2iPOGS9esB/k=
317+
github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY=
318+
github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0=
315319
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
316320
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
317321
github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=

pkg/config/config_gocritic.go

+5-11
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"sort"
66
"strings"
77

8-
"github.com/go-lintpack/lintpack"
8+
"github.com/go-critic/go-critic/framework/linter"
99
"github.com/pkg/errors"
1010

1111
_ "github.com/go-critic/go-critic/checkers" // this import register checkers
@@ -18,9 +18,9 @@ const gocriticDebugKey = "gocritic"
1818
var (
1919
gocriticDebugf = logutils.Debug(gocriticDebugKey)
2020
isGocriticDebug = logutils.HaveDebugTag(gocriticDebugKey)
21-
allGocriticCheckers = lintpack.GetCheckersInfo()
22-
allGocriticCheckerMap = func() map[string]*lintpack.CheckerInfo {
23-
checkInfoMap := make(map[string]*lintpack.CheckerInfo)
21+
allGocriticCheckers = linter.GetCheckersInfo()
22+
allGocriticCheckerMap = func() map[string]*linter.CheckerInfo {
23+
checkInfoMap := make(map[string]*linter.CheckerInfo)
2424
for _, checkInfo := range allGocriticCheckers {
2525
checkInfoMap[checkInfo.Name] = checkInfo
2626
}
@@ -281,7 +281,7 @@ func getAllCheckerNames() map[string]bool {
281281
return allCheckerNames
282282
}
283283

284-
func isEnabledByDefaultGocriticCheck(info *lintpack.CheckerInfo) bool {
284+
func isEnabledByDefaultGocriticCheck(info *linter.CheckerInfo) bool {
285285
return !info.HasTag("experimental") &&
286286
!info.HasTag("opinionated") &&
287287
!info.HasTag("performance")
@@ -290,9 +290,6 @@ func isEnabledByDefaultGocriticCheck(info *lintpack.CheckerInfo) bool {
290290
func getDefaultEnabledGocriticCheckersNames() []string {
291291
var enabled []string
292292
for _, info := range allGocriticCheckers {
293-
// get in sync with lintpack behavior in bindDefaultEnabledList
294-
// in https://github.com/go-lintpack/lintpack/blob/master/linter/lintmain/internal/check/check.go#L317
295-
296293
enable := isEnabledByDefaultGocriticCheck(info)
297294
if enable {
298295
enabled = append(enabled, info.Name)
@@ -305,9 +302,6 @@ func getDefaultEnabledGocriticCheckersNames() []string {
305302
func getDefaultDisabledGocriticCheckersNames() []string {
306303
var disabled []string
307304
for _, info := range allGocriticCheckers {
308-
// get in sync with lintpack behavior in bindDefaultEnabledList
309-
// in https://github.com/go-lintpack/lintpack/blob/master/linter/lintmain/internal/check/check.go#L317
310-
311305
enable := isEnabledByDefaultGocriticCheck(info)
312306
if !enable {
313307
disabled = append(disabled, info.Name)

pkg/golinters/gocritic.go

+17-17
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"strings"
1111
"sync"
1212

13-
"github.com/go-lintpack/lintpack"
13+
gocriticlinter "github.com/go-critic/go-critic/framework/linter"
1414
"golang.org/x/tools/go/analysis"
1515

1616
"github.com/golangci/golangci-lint/pkg/config"
@@ -38,15 +38,15 @@ func NewGocritic() *goanalysis.Linter {
3838
nil,
3939
).WithContextSetter(func(lintCtx *linter.Context) {
4040
analyzer.Run = func(pass *analysis.Pass) (interface{}, error) {
41-
lintpackCtx := lintpack.NewContext(pass.Fset, sizes)
42-
enabledCheckers, err := buildEnabledCheckers(lintCtx, lintpackCtx)
41+
linterCtx := gocriticlinter.NewContext(pass.Fset, sizes)
42+
enabledCheckers, err := buildEnabledCheckers(lintCtx, linterCtx)
4343
if err != nil {
4444
return nil, err
4545
}
4646

47-
lintpackCtx.SetPackageInfo(pass.TypesInfo, pass.Pkg)
47+
linterCtx.SetPackageInfo(pass.TypesInfo, pass.Pkg)
4848
var res []goanalysis.Issue
49-
pkgIssues := runGocriticOnPackage(lintpackCtx, enabledCheckers, pass.Files)
49+
pkgIssues := runGocriticOnPackage(linterCtx, enabledCheckers, pass.Files)
5050
for i := range pkgIssues {
5151
res = append(res, goanalysis.NewIssue(&pkgIssues[i], pass))
5252
}
@@ -65,17 +65,17 @@ func NewGocritic() *goanalysis.Linter {
6565
}).WithLoadMode(goanalysis.LoadModeTypesInfo)
6666
}
6767

68-
func normalizeCheckerInfoParams(info *lintpack.CheckerInfo) lintpack.CheckerParams {
68+
func normalizeCheckerInfoParams(info *gocriticlinter.CheckerInfo) gocriticlinter.CheckerParams {
6969
// lowercase info param keys here because golangci-lint's config parser lowercases all strings
70-
ret := lintpack.CheckerParams{}
70+
ret := gocriticlinter.CheckerParams{}
7171
for k, v := range info.Params {
7272
ret[strings.ToLower(k)] = v
7373
}
7474

7575
return ret
7676
}
7777

78-
func configureCheckerInfo(info *lintpack.CheckerInfo, allParams map[string]config.GocriticCheckSettings) error {
78+
func configureCheckerInfo(info *gocriticlinter.CheckerInfo, allParams map[string]config.GocriticCheckSettings) error {
7979
params := allParams[strings.ToLower(info.Name)]
8080
if params == nil { // no config for this checker
8181
return nil
@@ -108,12 +108,12 @@ func configureCheckerInfo(info *lintpack.CheckerInfo, allParams map[string]confi
108108
return nil
109109
}
110110

111-
func buildEnabledCheckers(lintCtx *linter.Context, lintpackCtx *lintpack.Context) ([]*lintpack.Checker, error) {
111+
func buildEnabledCheckers(lintCtx *linter.Context, linterCtx *gocriticlinter.Context) ([]*gocriticlinter.Checker, error) {
112112
s := lintCtx.Settings().Gocritic
113113
allParams := s.GetLowercasedParams()
114114

115-
var enabledCheckers []*lintpack.Checker
116-
for _, info := range lintpack.GetCheckersInfo() {
115+
var enabledCheckers []*gocriticlinter.Checker
116+
for _, info := range gocriticlinter.GetCheckersInfo() {
117117
if !s.IsCheckEnabled(info.Name) {
118118
continue
119119
}
@@ -122,27 +122,27 @@ func buildEnabledCheckers(lintCtx *linter.Context, lintpackCtx *lintpack.Context
122122
return nil, err
123123
}
124124

125-
c := lintpack.NewChecker(lintpackCtx, info)
125+
c := gocriticlinter.NewChecker(linterCtx, info)
126126
enabledCheckers = append(enabledCheckers, c)
127127
}
128128

129129
return enabledCheckers, nil
130130
}
131131

132-
func runGocriticOnPackage(lintpackCtx *lintpack.Context, checkers []*lintpack.Checker,
132+
func runGocriticOnPackage(linterCtx *gocriticlinter.Context, checkers []*gocriticlinter.Checker,
133133
files []*ast.File) []result.Issue {
134134
var res []result.Issue
135135
for _, f := range files {
136-
filename := filepath.Base(lintpackCtx.FileSet.Position(f.Pos()).Filename)
137-
lintpackCtx.SetFileInfo(filename, f)
136+
filename := filepath.Base(linterCtx.FileSet.Position(f.Pos()).Filename)
137+
linterCtx.SetFileInfo(filename, f)
138138

139-
issues := runGocriticOnFile(lintpackCtx, f, checkers)
139+
issues := runGocriticOnFile(linterCtx, f, checkers)
140140
res = append(res, issues...)
141141
}
142142
return res
143143
}
144144

145-
func runGocriticOnFile(ctx *lintpack.Context, f *ast.File, checkers []*lintpack.Checker) []result.Issue {
145+
func runGocriticOnFile(ctx *gocriticlinter.Context, f *ast.File, checkers []*gocriticlinter.Checker) []result.Issue {
146146
var res []result.Issue
147147

148148
for _, c := range checkers {

test/errchk.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ var (
156156
errRx = regexp.MustCompile(`// (?:GC_)?ERROR (.*)`)
157157
errAutoRx = regexp.MustCompile(`// (?:GC_)?ERRORAUTO (.*)`)
158158
errQuotesRx = regexp.MustCompile(`"([^"]*)"`)
159-
lineRx = regexp.MustCompile(`LINE(([+-])([0-9]+))?`)
159+
lineRx = regexp.MustCompile(`LINE(([+-])(\d+))?`)
160160
)
161161

162162
// wantedErrors parses expected errors from comments in a file.

0 commit comments

Comments
 (0)