Open
Description
The following program sample.go
triggers an unexpected result
package main
type Mover interface {
Move() error
}
type car struct {
Mover
}
type engine struct {
}
func (e *engine) Move() error {
println("engine moved")
return nil
}
func newMover() Mover {
return car{
Mover: &engine{},
}
}
func main() {
mover := newMover()
if _, ok := mover.(car); ok {
println("mover is a car")
}
_ = mover.Move()
}
Expected result
mover is a car
engine moved
Got
run: ./sample.go:27:14: impossible type assertion: main.car does not implement main.Mover (missing Move method)
Yaegi Version
v0.16.1
Additional Notes
No response