Skip to content

Commit af34430

Browse files
committed
Fix lint errors on files with //line directive
If the target files contains `//line` directive and it indicates a non-go file, the linter is going to handle it as a go file, which results in failure. The cause of this issue is that the linters (`Analyzer`s) are using `pass.Fset.Position()`. This func returns the adjusted position using `//line` directive. The example project reported in golangci#998 has `//line` directive that indicates other non-go file. According to the description of "Compiler Directives” (https://golang.org/cmd/compile/#hdr-Compiler_Directives), line directives is mainly used for reporting original positions to the generators or something. On linters of golangci-lint, `pass.Fset.Position()` is used just to aggregate file names; we don't have to adjust positions. This changes `Analyzer`s that use `pass.Fset.Position()` to aggregate file names to use `pass.Fset.PositionFor()` with `adjusted == false`. Relates: golangci#998
1 parent 02a4077 commit af34430

File tree

8 files changed

+8
-8
lines changed

8 files changed

+8
-8
lines changed

pkg/golinters/dupl.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func NewDupl() *goanalysis.Linter {
3434
analyzer.Run = func(pass *analysis.Pass) (interface{}, error) {
3535
var fileNames []string
3636
for _, f := range pass.Files {
37-
pos := pass.Fset.Position(f.Pos())
37+
pos := pass.Fset.PositionFor(f.Pos(), false)
3838
fileNames = append(fileNames, pos.Filename)
3939
}
4040

pkg/golinters/gofmt.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func NewGofmt() *goanalysis.Linter {
3131
analyzer.Run = func(pass *analysis.Pass) (interface{}, error) {
3232
var fileNames []string
3333
for _, f := range pass.Files {
34-
pos := pass.Fset.Position(f.Pos())
34+
pos := pass.Fset.PositionFor(f.Pos(), false)
3535
fileNames = append(fileNames, pos.Filename)
3636
}
3737

pkg/golinters/goimports.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func NewGoimports() *goanalysis.Linter {
3232
analyzer.Run = func(pass *analysis.Pass) (interface{}, error) {
3333
var fileNames []string
3434
for _, f := range pass.Files {
35-
pos := pass.Fset.Position(f.Pos())
35+
pos := pass.Fset.PositionFor(f.Pos(), false)
3636
fileNames = append(fileNames, pos.Filename)
3737
}
3838

pkg/golinters/gomodguard.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func NewGomodguard() *goanalysis.Linter {
5454
}
5555

5656
for _, file := range pass.Files {
57-
files = append(files, pass.Fset.Position(file.Pos()).Filename)
57+
files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename)
5858
}
5959

6060
processor, err := gomodguard.NewProcessor(processorCfg, log.New(os.Stderr, "", 0))

pkg/golinters/ineffassign.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func NewIneffassign() *goanalysis.Linter {
3131
analyzer.Run = func(pass *analysis.Pass) (interface{}, error) {
3232
var fileNames []string
3333
for _, f := range pass.Files {
34-
pos := pass.Fset.Position(f.Pos())
34+
pos := pass.Fset.PositionFor(f.Pos(), false)
3535
fileNames = append(fileNames, pos.Filename)
3636
}
3737

pkg/golinters/lll.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func NewLLL() *goanalysis.Linter {
9292
analyzer.Run = func(pass *analysis.Pass) (interface{}, error) {
9393
var fileNames []string
9494
for _, f := range pass.Files {
95-
pos := pass.Fset.Position(f.Pos())
95+
pos := pass.Fset.PositionFor(f.Pos(), false)
9696
fileNames = append(fileNames, pos.Filename)
9797
}
9898

pkg/golinters/misspell.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func NewMisspell() *goanalysis.Linter {
102102

103103
var fileNames []string
104104
for _, f := range pass.Files {
105-
pos := pass.Fset.Position(f.Pos())
105+
pos := pass.Fset.PositionFor(f.Pos(), false)
106106
fileNames = append(fileNames, pos.Filename)
107107
}
108108

pkg/golinters/wsl.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func NewWSL() *goanalysis.Linter {
5252
)
5353

5454
for _, file := range pass.Files {
55-
files = append(files, pass.Fset.Position(file.Pos()).Filename)
55+
files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename)
5656
}
5757

5858
wslErrors, _ := wsl.NewProcessorWithConfig(processorCfg).

0 commit comments

Comments
 (0)