Skip to content

Commit e1b7346

Browse files
authored
fix: invalid from position (#5287)
1 parent 8e4b0c3 commit e1b7346

File tree

5 files changed

+42
-1
lines changed

5 files changed

+42
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//golangcitest:args -Egofmt
2+
package testdata
3+
4+
import "fmt"
5+
6+
// want +4 "File is not properly formatted"
7+
func _() {
8+
fmt.Println("foo")
9+
}
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//golangcitest:args -Egofumpt
2+
package testdata
3+
4+
import "fmt"
5+
6+
// want +4 "File is not properly formatted"
7+
func _() {
8+
fmt.Println("foo")
9+
}
10+

pkg/golinters/internal/diff.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,12 @@ func ExtractDiagnosticFromPatch(
251251
}
252252

253253
func toDiagnostic(ft *token.File, change Change, adjLine int) analysis.Diagnostic {
254-
start := ft.LineStart(change.From + adjLine)
254+
from := change.From + adjLine
255+
if from > ft.LineCount() {
256+
from = ft.LineCount()
257+
}
258+
259+
start := ft.LineStart(from)
255260

256261
end := goanalysis.EndOfLinePos(ft, change.To+adjLine)
257262

pkg/golinters/internal/diff_test.go

+7
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ func Test_parse(t *testing.T) {
1919
log logutils.Log
2020
expected []Change
2121
}{
22+
{
23+
diff: "delete_last_line.diff",
24+
expected: []Change{{
25+
From: 10,
26+
To: 10,
27+
}},
28+
},
2229
{
2330
diff: "delete_only_first_lines.diff",
2431
expected: []Change{{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
diff --git i/main.go w/main.go
2+
index ef3cbb7..52a7925 100644
3+
--- i/main.go
4+
+++ w/main.go
5+
@@ -7,4 +7,3 @@ import (
6+
func main() {
7+
fmt.Println("hello world")
8+
}
9+
-

0 commit comments

Comments
 (0)