diff options
Diffstat (limited to 'tests/closure/tnested.nim')
-rw-r--r-- | tests/closure/tnested.nim | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/closure/tnested.nim b/tests/closure/tnested.nim index dbbe9ba58..ec5af9b13 100644 --- a/tests/closure/tnested.nim +++ b/tests/closure/tnested.nim @@ -1,4 +1,5 @@ discard """ +targets: "c js" output: ''' foo88 23 24foo 88 @@ -33,6 +34,7 @@ py py px 6 +proc (){.closure, noSideEffect, gcsafe.} ''' """ @@ -177,3 +179,37 @@ block tclosure2: outer2() + +# bug #5688 + +import typetraits + +block: + proc myDiscard[T](a: T) = discard + + proc foo() = + let a = 5 + let f = (proc() = + myDiscard (proc() = echo a) + ) + echo name(typeof(f)) + + foo() + + +block: + iterator foo: int {.closure.} = + yield 1 + yield 2 + yield 3 + + proc pork = + let call = foo + for i in call(): + discard i + + let call2 = foo + while not finished(call2): + discard call2() + + pork() |