https://github.com/ckaznocha/intrange
intrange is a program for checking for loops that could use the Go 1.22 integer range feature.
https://github.com/ckaznocha/intrange
go golang lint linter linting static-analysis static-code-analysis style-lint style-linter
Last synced: 3 months ago
JSON representation
intrange is a program for checking for loops that could use the Go 1.22 integer range feature.
- Host: GitHub
- URL: https://github.com/ckaznocha/intrange
- Owner: ckaznocha
- License: mit
- Created: 2024-02-10T02:02:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-08T02:17:25.000Z (11 months ago)
- Last Synced: 2024-12-08T02:22:51.425Z (11 months ago)
- Topics: go, golang, lint, linter, linting, static-analysis, static-code-analysis, style-lint, style-linter
- Language: Go
- Homepage:
- Size: 84 KB
- Stars: 15
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# intrange
[](https://github.com/ckaznocha/intrange/actions/workflows/github-code-scanning/codeql)

[](https://scorecard.dev/viewer/?uri=github.com/ckaznocha/intrange)
[](https://godoc.org/github.com/ckaznocha/intrange)
intrange is a program for checking for loops that could use the [Go 1.22](https://go.dev/ref/spec#Go_1.22) integer
range feature.
## Installation
```bash
go install github.com/ckaznocha/intrange/cmd/intrange@latest
```
## Usage
```bash
go vet -vettool=$(which intrange) ./...
```
## Examples
### A loop that uses the value of the loop variable
```go
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
fmt.Println(i)
}
}
```
Running `intrange` on the above code will produce the following output:
```bash
main.go:5:2: for loop can be changed to use an integer range (Go 1.22+)
```
The loop can be rewritten as:
```go
package main
import "fmt"
func main() {
for i := range 10 {
fmt.Println(i)
}
}
```
### A loop that does not use the value of the loop variable
```go
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
fmt.Println("Hello again!")
}
}
```
Running `intrange` on the above code will produce the following output:
```bash
main.go:5:2: for loop can be changed to use an integer range (Go 1.22+)
```
The loop can be rewritten as:
```go
package main
import "fmt"
func main() {
for range 10 {
fmt.Println("Hello again!")
}
}
```