The goquickfix command quick fixes Go source that is well typed but Go refuses to compile e.g. "x declared and not used".
goquickfix [-w] [-revert] <path>...
Flags: -revert=false: try to revert possible quickfixes introduced by goquickfix -w=false: write result to (source) file instead of stdout
While coding, sometimes you may write a Go program that is completely well typed
but go build
(or run
or test
) refuses to build, like this:
package main
import (
"fmt"
"log"
)
func main() {
nums := []int{3, 1, 4, 1, 5}
for i, n := range nums {
fmt.Println(n)
}
}
The Go compiler will complain:
eg.go:5: imported and not used: "log"
Or
eg.go:9: i declared and not used
Do we have to bother to comment out the import line or remove
the unused identifier one by one for the Go compiler? Of course no,
goquickfix
does the work instead of you.
Run
goquickfix -w eg.go
and you will get the source rewritten so that Go compiles it well without changing the semantics:
package main
import (
"fmt"
_ "log"
)
func main() {
nums := []int{3, 1, 4, 1, 5}
for i, n := range nums {
fmt.Println(n)
_ = i
}
}
Now you can go run
or go test
your code safely.