count, err = 1, nil // panic: reflect: New(nil)
he11olx opened this issue · comments
he11olx commented
The following program sample.go
triggers an unexpected result
package main
import (
"errors"
"go/build"
"github.com/traefik/yaegi/interp"
"github.com/traefik/yaegi/stdlib"
)
func main() {
inter := interp.New(interp.Options{GoPath: build.Default.GOPATH})
inter.Use(stdlib.Symbols)
var s2 = `package s2
func Handler(err error) int{
var count int
if err!= nil {
count, err = 1, nil // panic: reflect: New(nil)
// count, err = 1, error(nil) // It's ok
// It's ok
// count = 1
// err = nil
}
return count
}`
inter.Eval(s2)
i, _ := inter.Eval("s2.Handler")
f := i.Interface().(func(err error) int)
f(errors.New("test"))
}
Expected result
not paic
Got
panic: reflect: New(nil)
Yaegi Version
latest
Additional Notes
No response