1
1
package golinters
2
2
3
3
import (
4
- "sort"
5
4
"testing"
6
5
6
+ "golang.org/x/exp/slices"
7
7
"golang.org/x/tools/go/analysis"
8
8
"golang.org/x/tools/go/analysis/passes/asmdecl"
9
9
"golang.org/x/tools/go/analysis/passes/assign"
@@ -18,39 +18,41 @@ import (
18
18
19
19
func TestGovet (t * testing.T ) {
20
20
// Checking that every default analyzer is in "all analyzers" list.
21
- var checkList []* analysis.Analyzer
22
- checkList = append (checkList , defaultAnalyzers ... )
21
+ checkList := append ([]* analysis.Analyzer {}, defaultAnalyzers ... )
23
22
checkList = append (checkList , shadow .Analyzer ) // special case, used in analyzersFromConfig
24
23
25
24
for _ , defaultAnalyzer := range checkList {
26
- found := false
27
- for _ , a := range allAnalyzers {
28
- if a .Name == defaultAnalyzer .Name {
29
- found = true
30
- break
31
- }
32
- }
25
+ found := slices .ContainsFunc (allAnalyzers , func (a * analysis.Analyzer ) bool {
26
+ return a .Name == defaultAnalyzer .Name
27
+ })
33
28
if ! found {
34
29
t .Errorf ("%s is not in allAnalyzers" , defaultAnalyzer .Name )
35
30
}
36
31
}
37
32
}
38
33
39
- type sortedAnalyzers []* analysis.Analyzer
34
+ func sortAnalyzers (a , b * analysis.Analyzer ) int {
35
+ if a .Name < b .Name {
36
+ return - 1
37
+ }
38
+
39
+ if a .Name > b .Name {
40
+ return 1
41
+ }
40
42
41
- func (p sortedAnalyzers ) Len () int { return len (p ) }
42
- func (p sortedAnalyzers ) Less (i , j int ) bool { return p [i ].Name < p [j ].Name }
43
- func (p sortedAnalyzers ) Swap (i , j int ) { p [i ].Name , p [j ].Name = p [j ].Name , p [i ].Name }
43
+ return 0
44
+ }
44
45
45
46
func TestGovetSorted (t * testing.T ) {
46
47
// Keeping analyzers sorted so their order match the import order.
47
48
t .Run ("All" , func (t * testing.T ) {
48
- if ! sort . IsSorted ( sortedAnalyzers ( allAnalyzers ) ) {
49
+ if ! slices . IsSortedFunc ( allAnalyzers , sortAnalyzers ) {
49
50
t .Error ("please keep all analyzers list sorted by name" )
50
51
}
51
52
})
53
+
52
54
t .Run ("Default" , func (t * testing.T ) {
53
- if ! sort . IsSorted ( sortedAnalyzers ( defaultAnalyzers ) ) {
55
+ if ! slices . IsSortedFunc ( defaultAnalyzers , sortAnalyzers ) {
54
56
t .Error ("please keep default analyzers list sorted by name" )
55
57
}
56
58
})
0 commit comments