From 242138b8a73b8fcfdd0e1b912cd91d95a9612316 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 12 Aug 2022 11:12:05 +0200 Subject: [PATCH] review --- pkg/golinters/gocritic.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/golinters/gocritic.go b/pkg/golinters/gocritic.go index a53d57662461..c3ca32638ca1 100644 --- a/pkg/golinters/gocritic.go +++ b/pkg/golinters/gocritic.go @@ -11,6 +11,7 @@ import ( "strings" "sync" + "github.com/go-critic/go-critic/checkers" gocriticlinter "github.com/go-critic/go-critic/framework/linter" "golang.org/x/tools/go/analysis" @@ -28,7 +29,7 @@ func NewGocritic(settings *config.GocriticSettings, cfg *config.Config) *goanaly sizes := types.SizesFor("gc", runtime.GOARCH) - wrapper := goCriticWrapper{ + wrapper := &goCriticWrapper{ settings: settings, cfg: cfg, sizes: sizes, @@ -71,9 +72,12 @@ type goCriticWrapper struct { settings *config.GocriticSettings cfg *config.Config sizes types.Sizes + once sync.Once } -func (w goCriticWrapper) run(pass *analysis.Pass) ([]goanalysis.Issue, error) { +func (w *goCriticWrapper) run(pass *analysis.Pass) ([]goanalysis.Issue, error) { + w.once.Do(checkers.InitEmbeddedRules) + linterCtx := gocriticlinter.NewContext(pass.Fset, w.sizes) enabledCheckers, err := w.buildEnabledCheckers(linterCtx) @@ -93,7 +97,7 @@ func (w goCriticWrapper) run(pass *analysis.Pass) ([]goanalysis.Issue, error) { return issues, nil } -func (w goCriticWrapper) buildEnabledCheckers(linterCtx *gocriticlinter.Context) ([]*gocriticlinter.Checker, error) { +func (w *goCriticWrapper) buildEnabledCheckers(linterCtx *gocriticlinter.Context) ([]*gocriticlinter.Checker, error) { allParams := w.settings.GetLowercasedParams() var enabledCheckers []*gocriticlinter.Checker