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