1
2
3
4
5
6
7
8
9
10 package main
11
12 type test_i interface {
13 Test() test_i
14 Result() bool
15 }
16
17 type test_t struct {
18 }
19
20 func newTest() *test_t {
21 return &test_t{}
22 }
23
24 type testFn func(string) testFn
25
26 func main() {
27 test := newTest()
28
29 switch {
30 case test.
31 Test().
32 Test().
33 Test().
34 Test().
35 Test().
36 Test().
37 Test().
38 Test().
39 Test().
40 Test().
41 Result():
42
43 default:
44 panic("Result returned false unexpectedly")
45 }
46 }
47
48 func (t *test_t) Test() test_i {
49 return t
50 }
51
52 func (t *test_t) Result() bool {
53 return true
54 }
55
View as plain text