diff options
Diffstat (limited to 'test/func5.go')
-rw-r--r-- | test/func5.go | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/test/func5.go b/test/func5.go index 033aa0e3f..e27825c2b 100644 --- a/test/func5.go +++ b/test/func5.go @@ -7,13 +7,13 @@ package main func caller(f func(int, int) int, a, b int, c chan int) { - c <- f(a,b) + c <- f(a, b) } - + func gocall(f func(int, int) int, a, b int) int { - c := make(chan int); - go caller(f, a, b, c); - return <-c; + c := make(chan int) + go caller(f, a, b, c) + return <-c } func call(f func(int, int) int, a, b int) int { @@ -30,7 +30,7 @@ func add(x, y int) int { return x + y } -func fn() (func(int, int) int) { +func fn() func(int, int) int { return f } @@ -40,50 +40,50 @@ func addc(x, y int, c chan int) { c <- x+y } -func fnc() (func(int, int, chan int)) { +func fnc() func(int, int, chan int) { return fc } func three(x int) { if x != 3 { - panic("wrong val", x) + println("wrong val", x) + panic("fail") } } var notmain func() -func emptyresults() () {} -func noresults() {} +func emptyresults() {} +func noresults() {} var nothing func() func main() { - three(call(add, 1, 2)); - three(call1(add, 1, 2)); - f = add; - three(call(f, 1, 2)); - three(call1(f, 1, 2)); - three(call(fn(), 1, 2)); - three(call1(fn(), 1, 2)); - three(call(func(a,b int) int {return a+b}, 1, 2)); - three(call1(func(a,b int) int {return a+b}, 1, 2)); - - fc = addc; - c := make(chan int); - go addc(1, 2, c); - three(<-c); - go fc(1, 2, c); - three(<-c); - go fnc()(1, 2, c); - three(<-c); - go func(a, b int, c chan int){c <- a+b}(1, 2, c); - three(<-c); - - emptyresults(); - noresults(); - nothing = emptyresults; - nothing(); - nothing = noresults; - nothing(); + three(call(add, 1, 2)) + three(call1(add, 1, 2)) + f = add + three(call(f, 1, 2)) + three(call1(f, 1, 2)) + three(call(fn(), 1, 2)) + three(call1(fn(), 1, 2)) + three(call(func(a, b int) int { return a + b }, 1, 2)) + three(call1(func(a, b int) int { return a + b }, 1, 2)) + + fc = addc + c := make(chan int) + go addc(1, 2, c) + three(<-c) + go fc(1, 2, c) + three(<-c) + go fnc()(1, 2, c) + three(<-c) + go func(a, b int, c chan int) { c <- a+b }(1, 2, c) + three(<-c) + + emptyresults() + noresults() + nothing = emptyresults + nothing() + nothing = noresults + nothing() } - |