From 78a738f7cbcedac710e8de83e10cbf5721061114 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Thu, 1 Aug 2024 01:34:04 +0200 Subject: [PATCH] unused: remove exported-is-used option (#4890) --- jsonschema/golangci.next.jsonschema.json | 5 ----- pkg/config/linters_settings.go | 2 +- pkg/config/loader.go | 5 +++++ pkg/golinters/unused/unused.go | 12 +++++++----- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/jsonschema/golangci.next.jsonschema.json b/jsonschema/golangci.next.jsonschema.json index 9acf00dc..16c7f557 100644 --- a/jsonschema/golangci.next.jsonschema.json +++ b/jsonschema/golangci.next.jsonschema.json @@ -3233,11 +3233,6 @@ "type": "boolean", "default": false }, - "exported-is-used": { - "description": "", - "type": "boolean", - "default": true - }, "exported-fields-are-used": { "description": "", "type": "boolean", diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 2be14671..267efe2c 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -948,7 +948,7 @@ type UnparamSettings struct { type UnusedSettings struct { FieldWritesAreUses bool `mapstructure:"field-writes-are-uses"` PostStatementsAreReads bool `mapstructure:"post-statements-are-reads"` - ExportedIsUsed bool `mapstructure:"exported-is-used"` + ExportedIsUsed bool `mapstructure:"exported-is-used"` // Deprecated ExportedFieldsAreUsed bool `mapstructure:"exported-fields-are-used"` ParametersAreUsed bool `mapstructure:"parameters-are-used"` LocalVariablesAreUsed bool `mapstructure:"local-variables-are-used"` diff --git a/pkg/config/loader.go b/pkg/config/loader.go index 03b7425a..91984930 100644 --- a/pkg/config/loader.go +++ b/pkg/config/loader.go @@ -433,6 +433,11 @@ func (l *Loader) handleLinterOptionDeprecations() { l.log.Warnf("The configuration option `linters.stylecheck.go` is deprecated, please use global `run.go`.") } + // Deprecated since v1.60.0 + if !l.cfg.LintersSettings.Unused.ExportedIsUsed { + l.log.Warnf("The configuration option `linters.unused.exported-is-used` is deprecated.") + } + // Deprecated since v1.58.0 if l.cfg.LintersSettings.SlogLint.ContextOnly { l.log.Warnf("The configuration option `linters.sloglint.context-only` is deprecated, please use `linters.sloglint.context`.") diff --git a/pkg/golinters/unused/unused.go b/pkg/golinters/unused/unused.go index 55712f08..19cf7476 100644 --- a/pkg/golinters/unused/unused.go +++ b/pkg/golinters/unused/unused.go @@ -90,11 +90,13 @@ func getUnusedResults(pass *analysis.Pass, settings *config.UnusedSettings) unus opts := unused.Options{ FieldWritesAreUses: settings.FieldWritesAreUses, PostStatementsAreReads: settings.PostStatementsAreReads, - ExportedIsUsed: settings.ExportedIsUsed, - ExportedFieldsAreUsed: settings.ExportedFieldsAreUsed, - ParametersAreUsed: settings.ParametersAreUsed, - LocalVariablesAreUsed: settings.LocalVariablesAreUsed, - GeneratedIsUsed: settings.GeneratedIsUsed, + // Related to https://github.com/golangci/golangci-lint/issues/4218 + // https://github.com/dominikh/go-tools/issues/1474#issuecomment-1850760813 + ExportedIsUsed: true, + ExportedFieldsAreUsed: settings.ExportedFieldsAreUsed, + ParametersAreUsed: settings.ParametersAreUsed, + LocalVariablesAreUsed: settings.LocalVariablesAreUsed, + GeneratedIsUsed: settings.GeneratedIsUsed, } // ref: https://github.com/dominikh/go-tools/blob/4ec1f474ca6c0feb8e10a8fcca4ab95f5b5b9881/internal/cmd/unused/unused.go#L68