github.com/traefik/yaegi@v0.15.1/_test/issue-1187.go (about) 1 package main 2 3 import ( 4 "io" 5 "os" 6 ) 7 8 type sink interface { 9 io.Writer 10 io.Closer 11 } 12 13 func newSink() sink { 14 // return os.Stdout // Stdout is special in yaegi tests 15 file, err := os.CreateTemp("", "yaegi-test.*") 16 if err != nil { 17 panic(err) 18 } 19 return file 20 } 21 22 func main() { 23 s := newSink() 24 n, err := s.Write([]byte("Hello\n")) 25 if err != nil { 26 panic(err) 27 } 28 var writer io.Writer = s 29 m, err := writer.Write([]byte("Hello\n")) 30 if err != nil { 31 panic(err) 32 } 33 var closer io.Closer = s 34 err = closer.Close() 35 if err != nil { 36 panic(err) 37 } 38 err = os.Remove(s.(*os.File).Name()) 39 if err != nil { 40 panic(err) 41 } 42 println(m, n) 43 } 44 45 // Output: 46 // 6 6