Skip to content

Commit 8c5f0a1

Browse files
committed
Enable 'identical' by default, disable the rest
1 parent 682c7ba commit 8c5f0a1

File tree

7 files changed

+21
-28
lines changed

7 files changed

+21
-28
lines changed

.golangci.next.reference.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1223,12 +1223,11 @@ linters-settings:
12231223
var-require-grouping: true
12241224

12251225
iface:
1226-
# By default, set to empty.
1227-
# Empty means that all analyzers are enabled.
1228-
# Default: []
1226+
# By default is set to 'identical' only.
1227+
# Default: [identical]
12291228
enable:
1230-
- unused
12311229
- identical
1230+
- unused
12321231
- opaque
12331232
settings:
12341233
unused:

jsonschema/golangci.next.jsonschema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,8 @@
295295
},
296296
"iface-analyzers": {
297297
"enum": [
298-
"unused",
299298
"identical",
299+
"unused",
300300
"opaque"
301301
]
302302
},

pkg/golinters/iface/iface.go

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@ package iface
22

33
import (
44
"slices"
5-
"strings"
65

76
"github.com/uudashr/iface/identical"
87
"github.com/uudashr/iface/opaque"
98
"github.com/uudashr/iface/unused"
10-
"golang.org/x/exp/maps"
119
"golang.org/x/tools/go/analysis"
1210

1311
"github.com/golangci/golangci-lint/pkg/config"
@@ -30,24 +28,23 @@ func New(settings *config.IfaceSettings) *goanalysis.Linter {
3028

3129
func analyzersFromSettings(settings *config.IfaceSettings) []*analysis.Analyzer {
3230
allAnalyzers := map[string]*analysis.Analyzer{
33-
"unused": unused.Analyzer,
3431
"identical": identical.Analyzer,
32+
"unused": unused.Analyzer,
3533
"opaque": opaque.Analyzer,
3634
}
3735

3836
if settings == nil || len(settings.Enable) == 0 {
39-
analyzers := maps.Values(allAnalyzers)
40-
41-
// To have a deterministic order.
42-
slices.SortFunc(analyzers, func(a *analysis.Analyzer, b *analysis.Analyzer) int {
43-
return strings.Compare(a.Name, b.Name)
44-
})
45-
46-
return analyzers
37+
// Default enable `identical` analyzer only
38+
return []*analysis.Analyzer{identical.Analyzer}
4739
}
4840

4941
var analyzers []*analysis.Analyzer
5042
for _, name := range uniqueNames(settings.Enable) {
43+
if _, ok := allAnalyzers[name]; !ok {
44+
// skip unknown analyzer
45+
continue
46+
}
47+
5148
analyzers = append(analyzers, allAnalyzers[name])
5249
}
5350

pkg/golinters/iface/testdata/iface.go renamed to pkg/golinters/iface/testdata/iface_all.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
//golangcitest:args -Eiface
2+
//golangcitest:config_path testdata/iface_all.yml
23
package testdata
34

45
// identical
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
linters-settings:
2+
iface:
3+
enable:
4+
- unused
5+
- identical
6+
- opaque

pkg/golinters/iface/testdata/iface_unused_settings.go renamed to pkg/golinters/iface/testdata/iface_default.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
//golangcitest:args -Eiface
2-
//golangcitest:config_path testdata/iface_unused_settings.yml
3-
//golangcitest:expected_exitcode 0
42
package testdata
53

64
// identical
75

8-
type Pinger interface {
6+
type Pinger interface { // want "identical: interface Pinger contains identical methods or type constraints from another interface, causing redundancy"
97
Ping() error
108
}
119

12-
type Healthcheck interface {
10+
type Healthcheck interface { // want "identical: interface Healthcheck contains identical methods or type constraints from another interface, causing redundancy"
1311
Ping() error
1412
}
1513

pkg/golinters/iface/testdata/iface_unused_settings.yml

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)