1
1
package unparam
2
2
3
3
import (
4
- "sync"
5
-
6
4
"golang.org/x/tools/go/analysis"
7
5
"golang.org/x/tools/go/analysis/passes/buildssa"
8
6
"golang.org/x/tools/go/packages"
@@ -11,33 +9,21 @@ import (
11
9
"github.com/golangci/golangci-lint/pkg/config"
12
10
"github.com/golangci/golangci-lint/pkg/goanalysis"
13
11
"github.com/golangci/golangci-lint/pkg/lint/linter"
14
- "github.com/golangci/golangci-lint/pkg/result"
15
12
)
16
13
17
14
const linterName = "unparam"
18
15
19
16
func New (settings * config.UnparamSettings ) * goanalysis.Linter {
20
- var mu sync.Mutex
21
- var resIssues []goanalysis.Issue
22
-
23
17
analyzer := & analysis.Analyzer {
24
18
Name : linterName ,
25
19
Doc : goanalysis .TheOnlyanalyzerDoc ,
26
20
Requires : []* analysis.Analyzer {buildssa .Analyzer },
27
21
Run : func (pass * analysis.Pass ) (any , error ) {
28
- issues , err := runUnparam (pass , settings )
22
+ err := runUnparam (pass , settings )
29
23
if err != nil {
30
24
return nil , err
31
25
}
32
26
33
- if len (issues ) == 0 {
34
- return nil , nil
35
- }
36
-
37
- mu .Lock ()
38
- resIssues = append (resIssues , issues ... )
39
- mu .Unlock ()
40
-
41
27
return nil , nil
42
28
},
43
29
}
@@ -51,12 +37,10 @@ func New(settings *config.UnparamSettings) *goanalysis.Linter {
51
37
if settings .Algo != "cha" {
52
38
lintCtx .Log .Warnf ("`linters-settings.unparam.algo` isn't supported by the newest `unparam`" )
53
39
}
54
- }).WithIssuesReporter (func (* linter.Context ) []goanalysis.Issue {
55
- return resIssues
56
40
}).WithLoadMode (goanalysis .LoadModeTypesInfo )
57
41
}
58
42
59
- func runUnparam (pass * analysis.Pass , settings * config.UnparamSettings ) ([]goanalysis. Issue , error ) {
43
+ func runUnparam (pass * analysis.Pass , settings * config.UnparamSettings ) error {
60
44
ssa := pass .ResultOf [buildssa .Analyzer ].(* buildssa.SSA )
61
45
ssaPkg := ssa .Pkg
62
46
@@ -74,17 +58,15 @@ func runUnparam(pass *analysis.Pass, settings *config.UnparamSettings) ([]goanal
74
58
75
59
unparamIssues , err := c .Check ()
76
60
if err != nil {
77
- return nil , err
61
+ return err
78
62
}
79
63
80
- var issues []goanalysis.Issue
81
64
for _ , i := range unparamIssues {
82
- issues = append (issues , goanalysis .NewIssue (& result.Issue {
83
- Pos : pass .Fset .Position (i .Pos ()),
84
- Text : i .Message (),
85
- FromLinter : linterName ,
86
- }, pass ))
65
+ pass .Report (analysis.Diagnostic {
66
+ Pos : i .Pos (),
67
+ Message : i .Message (),
68
+ })
87
69
}
88
70
89
- return issues , nil
71
+ return nil
90
72
}
0 commit comments