diff --git a/pkg/golinters/goanalysis/linter.go b/pkg/golinters/goanalysis/linter.go index 307a115696a2..9a603d0b3bee 100644 --- a/pkg/golinters/goanalysis/linter.go +++ b/pkg/golinters/goanalysis/linter.go @@ -54,24 +54,19 @@ func (loadMode LoadMode) String() string { } type Linter struct { - name, desc string - analyzers []*analysis.Analyzer - cfg map[string]map[string]interface{} - issuesReporter func(*linter.Context) []Issue - contextSetter func(*linter.Context) - loadMode LoadMode - needUseOriginalPackages bool - isTypecheckModeOn bool + name, desc string + analyzers []*analysis.Analyzer + cfg map[string]map[string]interface{} + issuesReporter func(*linter.Context) []Issue + contextSetter func(*linter.Context) + loadMode LoadMode + isTypecheckModeOn bool } func NewLinter(name, desc string, analyzers []*analysis.Analyzer, cfg map[string]map[string]interface{}) *Linter { return &Linter{name: name, desc: desc, analyzers: analyzers, cfg: cfg} } -func (lnt *Linter) UseOriginalPackages() { - lnt.needUseOriginalPackages = true -} - func (lnt *Linter) SetTypecheckMode() { lnt.isTypecheckModeOn = true } @@ -264,10 +259,6 @@ func (lnt *Linter) getAnalyzers() []*analysis.Analyzer { return lnt.analyzers } -func (lnt *Linter) useOriginalPackages() bool { - return lnt.needUseOriginalPackages -} - func (lnt *Linter) isTypecheckMode() bool { return lnt.isTypecheckModeOn } @@ -287,7 +278,6 @@ type runAnalyzersConfig interface { getName() string getLinterNameForDiagnostic(*Diagnostic) string getAnalyzers() []*analysis.Analyzer - useOriginalPackages() bool isTypecheckMode() bool reportIssues(*linter.Context) []Issue getLoadMode() LoadMode @@ -437,9 +427,6 @@ func runAnalyzers(cfg runAnalyzersConfig, lintCtx *linter.Context) ([]result.Iss runner := newRunner(cfg.getName(), log, lintCtx.PkgCache, lintCtx.LoadGuard, cfg.getLoadMode(), sw) pkgs := lintCtx.Packages - if cfg.useOriginalPackages() { - pkgs = lintCtx.OriginalPackages - } issues, pkgsFromCache := loadIssuesFromCache(pkgs, lintCtx, cfg.getAnalyzers()) var pkgsToAnalyze []*packages.Package diff --git a/pkg/golinters/goanalysis/metalinter.go b/pkg/golinters/goanalysis/metalinter.go index 5975e2057a19..8a36956d298b 100644 --- a/pkg/golinters/goanalysis/metalinter.go +++ b/pkg/golinters/goanalysis/metalinter.go @@ -60,10 +60,6 @@ func (ml MetaLinter) getName() string { return "metalinter" } -func (ml MetaLinter) useOriginalPackages() bool { - return false // `unused` can't be run by this metalinter -} - func (ml MetaLinter) reportIssues(lintCtx *linter.Context) []Issue { var ret []Issue for _, lnt := range ml.linters { diff --git a/pkg/golinters/unused.go b/pkg/golinters/unused.go index 5f6d8371c572..d93c2b79f7f1 100644 --- a/pkg/golinters/unused.go +++ b/pkg/golinters/unused.go @@ -25,7 +25,7 @@ func NewUnused() *goanalysis.Linter { nil, ).WithIssuesReporter(func(lintCtx *linter.Context) []goanalysis.Issue { typesToPkg := map[*types.Package]*packages.Package{} - for _, pkg := range lintCtx.OriginalPackages { + for _, pkg := range lintCtx.Packages { typesToPkg[pkg.Types] = pkg } @@ -51,7 +51,6 @@ func NewUnused() *goanalysis.Linter { return issues }).WithContextSetter(func(lintCtx *linter.Context) { u.WholeProgram = lintCtx.Settings().Unused.CheckExported - }).WithLoadMode(goanalysis.LoadModeWholeProgram) - lnt.UseOriginalPackages() + }).WithLoadMode(goanalysis.LoadModeTypesInfo) return lnt } diff --git a/pkg/lint/linter/context.go b/pkg/lint/linter/context.go index 1c4902e1889b..25c45afad2b1 100644 --- a/pkg/lint/linter/context.go +++ b/pkg/lint/linter/context.go @@ -14,10 +14,6 @@ type Context struct { // Packages are deduplicated (test and normal packages) packages Packages []*packages.Package - // OriginalPackages aren't deduplicated: they contain both normal and test - // version for each of packages - OriginalPackages []*packages.Package - Cfg *config.Config FileCache *fsutils.FileCache LineCache *fsutils.LineCache diff --git a/pkg/lint/load.go b/pkg/lint/load.go index de0ab4117c30..107d4b687d26 100644 --- a/pkg/lint/load.go +++ b/pkg/lint/load.go @@ -289,12 +289,7 @@ func (cl *ContextLoader) Load(ctx context.Context, linters []*linter.Config) (*l } ret := &linter.Context{ - Packages: deduplicatedPkgs, - - // At least `unused` linters works properly only on original (not deduplicated) packages, - // see https://github.com/golangci/golangci-lint/pull/585. - OriginalPackages: pkgs, - + Packages: deduplicatedPkgs, Cfg: cl.cfg, Log: cl.log, FileCache: cl.fileCache,