github.com/traefik/yaegi@v0.15.1/_test/issue-1315.go (about) 1 package main 2 3 type Intf interface { 4 M() 5 } 6 7 type T struct { 8 s string 9 } 10 11 func (t *T) M() { println("in M") } 12 13 func f(i interface{}) { 14 switch j := i.(type) { 15 case Intf: 16 j.M() 17 default: 18 println("default") 19 } 20 } 21 22 func main() { 23 var i Intf 24 var k interface{} = 1 25 i = &T{"hello"} 26 f(i) 27 f(k) 28 } 29 30 // Output: 31 // in M 32 // default