github.com/traefik/yaegi@v0.15.1/_test/issue-1202.go (about) 1 package main 2 3 import "fmt" 4 5 type foobar struct { 6 callback func(string) func() 7 } 8 9 func cb(text string) func() { 10 return func() { 11 fmt.Println(text) 12 } 13 } 14 15 func main() { 16 // These ways of invoking it all work... 17 cb("Hi from inline callback!")() 18 19 asVarTest1 := cb("Hi from asVarTest1 callback!") 20 asVarTest1() 21 22 asVarTest2 := cb 23 asVarTest2("Hi from asVarTest2 callback!")() 24 25 // But inside a struct panics in yaegi... 26 asStructField := &foobar{callback: cb} 27 asStructField.callback("Hi from struct field callback!")() // <--- panics here 28 } 29 30 // Output: 31 // Hi from inline callback! 32 // Hi from asVarTest1 callback! 33 // Hi from asVarTest2 callback! 34 // Hi from struct field callback!