3 // Copyright 2009 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
7 // Test functions and goroutines.
11 func caller(f func(int, int) int, a, b int, c chan int) {
15 func gocall(f func(int, int) int, a, b int) int {
21 func call(f func(int, int) int, a, b int) int {
25 func call1(f func(int, int) int, a, b int) int {
29 var f func(int, int) int
31 func add(x, y int) int {
35 func fn() func(int, int) int {
39 var fc func(int, int, chan int)
41 func addc(x, y int, c chan int) {
45 func fnc() func(int, int, chan int) {
51 println("wrong val", x)
58 func emptyresults() {}
64 three(call(add, 1, 2))
65 three(call1(add, 1, 2))
69 three(call(fn(), 1, 2))
70 three(call1(fn(), 1, 2))
71 three(call(func(a, b int) int { return a + b }, 1, 2))
72 three(call1(func(a, b int) int { return a + b }, 1, 2))
82 go func(a, b int, c chan int) { c <- a+b }(1, 2, c)
87 nothing = emptyresults