Skip to content

Latest commit

 

History

History
91 lines (64 loc) · 1.79 KB

File metadata and controls

91 lines (64 loc) · 1.79 KB

intrange

CodeQL coverage OpenSSF Scorecard GoDoc

intrange is a program for checking for loops that could use the Go 1.22 integer range feature.

Installation

go install github.com/ckaznocha/intrange/cmd/intrange@latest

Usage

go vet -vettool=$(which intrange) ./...

Examples

A loop that uses the value of the loop variable

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:

main.go:5:2: for loop can be changed to use an integer range (Go 1.22+)

The loop can be rewritten as:

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

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:

main.go:5:2: for loop can be changed to use an integer range (Go 1.22+)

The loop can be rewritten as:

package main

import "fmt"

func main() {
    for range 10 {
        fmt.Println("Hello again!")
    }
}