itervar
itervar is a static analysis tool that detects references to loop iterator variable.
Features
Detect code using reference to loop iterator variable, a common mistake in Go.
https://github.com/golang/go/wiki/CommonMistakes#using-reference-to-loop-iterator-variable
Example
func forLoop() {
var out []*int
for i := 0; i < 3; i++ {
fmt.Println(i)
out = append(out, &i) // want "using reference to loop iterator variable"
}
}
Installation
go get
GO111MODULE=off go get github.com/p1ass/itervar/cmd/itervar
Usage
go vet -vettool=`which itervar` ./...