Skip to content

Commit b96ff83

Browse files
authored
feat: add intrange linter (#4378)
1 parent 76cfe46 commit b96ff83

File tree

6 files changed

+47
-0
lines changed

6 files changed

+47
-0
lines changed

.golangci.reference.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2538,6 +2538,7 @@ linters:
25382538
- ineffassign
25392539
- interfacebloat
25402540
- interfacer
2541+
- intrange
25412542
- ireturn
25422543
- lll
25432544
- loggercheck
@@ -2659,6 +2660,7 @@ linters:
26592660
- ineffassign
26602661
- interfacebloat
26612662
- interfacer
2663+
- intrange
26622664
- ireturn
26632665
- lll
26642666
- loggercheck

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ require (
2929
github.com/butuzov/mirror v1.1.0
3030
github.com/catenacyber/perfsprint v0.7.0
3131
github.com/charithe/durationcheck v0.0.10
32+
github.com/ckaznocha/intrange v0.1.0
3233
github.com/curioswitch/go-reassign v0.2.0
3334
github.com/daixiang0/gci v0.12.1
3435
github.com/denis-tingaikin/go-header v0.4.3

go.sum

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/golinters/intrange.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package golinters
2+
3+
import (
4+
"github.com/ckaznocha/intrange"
5+
"golang.org/x/tools/go/analysis"
6+
7+
"github.com/golangci/golangci-lint/pkg/golinters/goanalysis"
8+
)
9+
10+
func NewIntrange() *goanalysis.Linter {
11+
a := intrange.Analyzer
12+
13+
return goanalysis.NewLinter(
14+
a.Name,
15+
a.Doc,
16+
[]*analysis.Analyzer{a},
17+
nil,
18+
).WithLoadMode(goanalysis.LoadModeSyntax)
19+
}

pkg/lint/lintersdb/manager.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,10 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config {
608608
WithURL("https://github.com/mvdan/interfacer").
609609
Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", ""),
610610

611+
linter.NewConfig(golinters.NewIntrange()).
612+
WithSince("v1.57.0").
613+
WithURL("https://github.com/ckaznocha/intrange"),
614+
611615
linter.NewConfig(golinters.NewIreturn(ireturnCfg)).
612616
WithSince("v1.43.0").
613617
WithPresets(linter.PresetStyle).

test/testdata/intrange.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//golangcitest:args -Eintrange
2+
package testdata
3+
4+
import "math"
5+
6+
func CheckIntrange() {
7+
for i := 0; i < 10; i++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
8+
}
9+
10+
for i := uint8(0); i < math.MaxInt8; i++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
11+
}
12+
13+
for i := 0; i < 10; i += 2 {
14+
}
15+
16+
for i := 0; i < 10; i++ {
17+
i += 1
18+
}
19+
}

0 commit comments

Comments
 (0)