panic: reflect.Value.Convert: value of type error cannot be converted to type
iyear opened this issue · 0 comments
iyear commented
The following program sample.go
triggers an unexpected result
package main
type Err struct {
err string
}
func (e Err) Error() string {
return e.err
}
func main() {
var E = Err{"error"}
var err error = E
switch err {
case nil:
case E:
}
}
Expected result
No output, but running normally
Got
e.go:12:10: panic
run: reflect.Value.Convert: value of type error cannot be converted to type struct { Xerr string }
goroutine 1 [running]:
runtime/debug.Stack()
.../runtime/debug/stack.go:24 +0x5e
github.com/traefik/yaegi/interp.(*Interpreter).Execute.func1()
.../github.com/traefik/yaegi@v0.15.1/interp/program.go:146 +0x7e
panic({0xfdea20?, 0xc000043f10?})
.../runtime/panic.go:914 +0x21f
github.com/traefik/yaegi/interp.runCfg.func1()
.../github.com/traefik/yaegi@v0.15.1/interp/run.go:205 +0x185
panic({0xfdea20?, 0xc000043f10?})
.../runtime/panic.go:914 +0x21f
reflect.Value.Convert({0x1038aa0?, 0xc000043e90?, 0xc00008aa80?}, {0x12e6108, 0xc00008aa80})
.../reflect/value.go:3319 +0x12c
github.com/traefik/yaegi/interp._case.func7(0xc0000ca630?)
.../github.com/traefik/yaegi@v0.15.1/interp/run.go:3115 +0x1b7
github.com/traefik/yaegi/interp.runCfg(0xc000331b80, 0xc0000ca630, 0x4?, 0x0?)
.../github.com/traefik/yaegi@v0.15.1/interp/run.go:213 +0x285
github.com/traefik/yaegi/interp.(*Interpreter).run(0xc0000dd440, 0xc000330dc0, 0xc0000ca420?)
.../github.com/traefik/yaegi@v0.15.1/interp/run.go:119 +0x3c5
github.com/traefik/yaegi/interp.(*Interpreter).Execute(0xc0000dd440, 0xc000334930)
.../github.com/traefik/yaegi@v0.15.1/interp/program.go:172 +0x225
github.com/traefik/yaegi/interp.(*Interpreter).eval(0xc0000dd440, {0xc000210840?, 0xbd?}, {0xc00000a0d0?, 0x200?}, 0xc0?)
.../github.com/traefik/yaegi@v0.15.1/interp/interp.go:565 +0x55
github.com/traefik/yaegi/interp.(*Interpreter).EvalPath(0xc0000dd440, {0xc00000a0d0, 0x4})
.../github.com/traefik/yaegi@v0.15.1/interp/interp.go:514 +0xa6
main.runFile(0xc00000a0d0?, {0xc00000a0d0, 0x4}, 0x0)
.../github.com/traefik/yaegi@v0.15.1/cmd/yaegi/run.go:153 +0xd7
main.run({0xc0000880a0?, 0x1, 0x2})
.../github.com/traefik/yaegi@v0.15.1/cmd/yaegi/run.go:116 +0xb97
main.main()
.../github.com/traefik/yaegi@v0.15.1/cmd/yaegi/yaegi.go:133 +0xca
Yaegi Version
v0.15.1
Additional Notes
No response