@@ -18,11 +18,12 @@ type posMapper func(pos token.Position) token.Position
1818// to get filename. And they return adjusted filename (e.g. *.qtpl) for an issue. We need
1919// restore real .go filename to properly output it, parse it, etc.
2020type FilenameUnadjuster struct {
21- m map [string ]posMapper // map from adjusted filename to position mapper: adjusted -> unadjusted position
22- log logutils.Log
21+ m map [string ]posMapper // map from adjusted filename to position mapper: adjusted -> unadjusted position
22+ log logutils.Log
23+ loggedUnadjustments map [string ]bool
2324}
2425
25- var _ Processor = FilenameUnadjuster {}
26+ var _ Processor = & FilenameUnadjuster {}
2627
2728func NewFilenameUnadjuster (cache * astcache.Cache , log logutils.Log ) * FilenameUnadjuster {
2829 m := map [string ]posMapper {}
@@ -51,16 +52,17 @@ func NewFilenameUnadjuster(cache *astcache.Cache, log logutils.Log) *FilenameUna
5152 }
5253
5354 return & FilenameUnadjuster {
54- m : m ,
55- log : log ,
55+ m : m ,
56+ log : log ,
57+ loggedUnadjustments : map [string ]bool {},
5658 }
5759}
5860
5961func (p FilenameUnadjuster ) Name () string {
6062 return "filename_unadjuster"
6163}
6264
63- func (p FilenameUnadjuster ) Process (issues []result.Issue ) ([]result.Issue , error ) {
65+ func (p * FilenameUnadjuster ) Process (issues []result.Issue ) ([]result.Issue , error ) {
6466 return transformIssues (issues , func (i * result.Issue ) * result.Issue {
6567 issueFilePath := i .FilePath ()
6668 if ! filepath .IsAbs (i .FilePath ()) {
@@ -79,7 +81,10 @@ func (p FilenameUnadjuster) Process(issues []result.Issue) ([]result.Issue, erro
7981
8082 newI := * i
8183 newI .Pos = mapper (i .Pos )
82- p .log .Infof ("Unadjusted from %v to %v" , i .Pos , newI .Pos )
84+ if ! p .loggedUnadjustments [i .Pos .Filename ] {
85+ p .log .Infof ("Unadjusted from %v to %v" , i .Pos , newI .Pos )
86+ p .loggedUnadjustments [i .Pos .Filename ] = true
87+ }
8388 return & newI
8489 }), nil
8590}
0 commit comments