Closed bpicode closed 6 years ago
Hi, I noticed that ineffassign panics on the following code snippet
ineffassign
package p import ( "io" "io/ioutil" ) var w = ioutil.Discard var MyVar MyType type MyType struct {} func (m *MyType) DoWith(w io.Writer) { w.Write([]byte("xyz")) } func init() { MyVar.DoWith(w) }
Stacktrace
goroutine 1 [running]: main.(*builder).maybePanic(0xc4200985a0) /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:438 +0xe9 main.(*builder).Visit(0xc4200985a0, 0x5983e0, 0xc4200d7ec0, 0x0, 0x597fe0) /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:325 +0x29d0 go/ast.Walk(0x5971e0, 0xc4200985a0, 0x5983e0, 0xc4200d7ec0) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/go/ast/walk.go:52 +0x66 go/ast.Walk(0x5971e0, 0xc4200985a0, 0x597ca0, 0xc4200cf840) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/go/ast/walk.go:102 +0x4a7 go/ast.Walk(0x5971e0, 0xc4200985a0, 0x598620, 0xc4200d7fc0) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/go/ast/walk.go:143 +0x15df main.(*builder).walk(0xc4200985a0, 0x598620, 0xc4200d7fc0) /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:122 +0x5a main.(*builder).Visit(0xc4200985a0, 0x597fe0, 0xc4200cf880, 0x0, 0x0) /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:261 +0x163 go/ast.Walk(0x5971e0, 0xc4200985a0, 0x597fe0, 0xc4200cf880) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/go/ast/walk.go:52 +0x66 go/ast.walkDeclList(0x5971e0, 0xc4200985a0, 0xc4200cf900, 0x3, 0x4) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/go/ast/walk.go:38 +0x81 go/ast.Walk(0x5971e0, 0xc4200985a0, 0x597ea0, 0xc420096d00) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/go/ast/walk.go:353 +0x266f main.(*builder).walk(0xc4200985a0, 0x597ea0, 0xc420096d00) /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:122 +0x5a main.checkPath(0xc42001bb80, 0x45, 0x50db28, 0x3, 0xc4200cbb01, 0x43bd57, 0x50, 0x4e2c60, 0x1) /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:79 +0x12d main.walkPath.func1(0xc42001bb80, 0x45, 0x599e40, 0xc4200abee0, 0x0, 0x0, 0x0, 0x0) /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:61 +0x186 path/filepath.walk(0xc42001bb80, 0x45, 0x599e40, 0xc4200abee0, 0xc42000a0c0, 0x0, 0x0) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/path/filepath/path.go:356 +0x81 path/filepath.walk(0xc42001cd80, 0x37, 0x599e40, 0xc420085520, 0xc42000a0c0, 0x0, 0x0) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/path/filepath/path.go:381 +0x39a path/filepath.walk(0xc42001c240, 0x33, 0x599e40, 0xc420072750, 0xc42000a0c0, 0x0, 0x20) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/path/filepath/path.go:381 +0x39a path/filepath.Walk(0xc42001c240, 0x33, 0xc42000a0c0, 0x1, 0xc42001c240) /home/travis/.gimme/versions/go1.9.2.linux.amd64/src/path/filepath/path.go:403 +0x11d main.walkPath(0xc42001c240, 0x33, 0xc42001c240) /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:45 +0x9a main.main() /home/travis/gopath/src/github.com/gordonklaus/ineffassign/ineffassign.go:34 +0x7a
Looks like a bug to me. It was working (no ineff assignments reported) with previous versions, i.e. commit f4847a1d033f24ecb0d8ce8b6ca08b0345cf2ccf and earlier.
Any help is appreciated.
Oh, the irony 😆
Next time I won't forget to run it against more than just the tests.
Thanks for the quick report!
Hi, I noticed that
ineffassign
panics on the following code snippetStacktrace
Looks like a bug to me. It was working (no ineff assignments reported) with previous versions, i.e. commit f4847a1d033f24ecb0d8ce8b6ca08b0345cf2ccf and earlier.
Any help is appreciated.