diff options
Diffstat (limited to 'tests/iter/tanoniter1.nim')
-rw-r--r-- | tests/iter/tanoniter1.nim | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/iter/tanoniter1.nim b/tests/iter/tanoniter1.nim new file mode 100644 index 000000000..fee16497f --- /dev/null +++ b/tests/iter/tanoniter1.nim @@ -0,0 +1,33 @@ +discard """ + targets: "c js" + output: '''1 +2 +3 +4 +1 +2''' +""" + +proc factory(a, b: int): iterator (): int = + iterator foo(): int {.closure.} = + var x = a + while x <= b: + yield x + inc x + return foo + +proc factory2(a, b: int): iterator (): int = + return iterator (): int = + var x = a + while x <= b: + yield x + inc x + +let foo = factory(1, 4) + +for f in foo(): + echo f + +let foo2 = factory2(1,2) + +for f in foo2(): echo f |