diff options
Diffstat (limited to 'test/func5.go')
-rw-r--r-- | test/func5.go | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/test/func5.go b/test/func5.go deleted file mode 100644 index e27825c2b..000000000 --- a/test/func5.go +++ /dev/null @@ -1,89 +0,0 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out - -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package main - -func caller(f func(int, int) int, a, b int, c chan int) { - 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 -} - -func call(f func(int, int) int, a, b int) int { - return f(a, b) -} - -func call1(f func(int, int) int, a, b int) int { - return call(f, a, b) -} - -var f func(int, int) int - -func add(x, y int) int { - return x + y -} - -func fn() func(int, int) int { - return f -} - -var fc func(int, int, chan int) - -func addc(x, y int, c chan int) { - c <- x+y -} - -func fnc() func(int, int, chan int) { - return fc -} - -func three(x int) { - if x != 3 { - println("wrong val", x) - panic("fail") - } -} - -var notmain func() - -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() -} |