gopherdata / gophernotes

The Go kernel for Jupyter notebooks and nteract.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

not a package: "n" in n.multiply <*ast.SelectorExpr>

chbk opened this issue · comments

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

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.