not a package: "n" in n.multiply <*ast.SelectorExpr>
chbk opened this issue · 1 comments
chbk commented
type Node struct {
value int
next *Node
}
func (n Node) multiply(x int) int {
return n.value * x
}
n := Node{2, nil}
n.multiply(3)
repl.go:11:1: not a package: "n" in n.multiply <*ast.SelectorExpr>
However, this works:
type Node struct {
value int
}
func (n Node) multiply(x int) int {
return n.value * x
}
n := Node{2}
n.multiply(3)
Versions:
- go version go1.19.2 linux/amd64
- gophernotes@v0.7.5
Related to #240
cosmos72 commented
Thanks for spotting this!
It's a bug related to recursive types.
Similar issues keep popping up, because reflect
package cannot create recursive types
so they need to be emulated - and the emulation is not yet perfect.