aboutsummaryrefslogtreecommitdiff
path: root/test/range4.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/range4.go')
-rw-r--r--test/range4.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/range4.go b/test/range4.go
index 696b205ab7..0b051f6d3c 100644
--- a/test/range4.go
+++ b/test/range4.go
@@ -311,6 +311,30 @@ func testcalls() {
}
}
+type iter3YieldFunc func(int, int) bool
+
+func iter3(list ...int) func(iter3YieldFunc) {
+ return func(yield iter3YieldFunc) {
+ for k, v := range list {
+ if !yield(k, v) {
+ return
+ }
+ }
+ }
+}
+
+func testcalls1() {
+ ncalls := 0
+ for k, v := range iter3(1, 2, 3) {
+ _, _ = k, v
+ ncalls++
+ }
+ if ncalls != 3 {
+ println("wrong number of calls:", ncalls, "!= 3")
+ panic("fail")
+ }
+}
+
func main() {
testfunc0()
testfunc1()
@@ -323,4 +347,5 @@ func main() {
testfunc8()
testfunc9()
testcalls()
+ testcalls1()
}