diff options
Diffstat (limited to 'tests/closure/uclosures.nim')
-rw-r--r-- | tests/closure/uclosures.nim | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/closure/uclosures.nim b/tests/closure/uclosures.nim new file mode 100644 index 000000000..f259cfeb9 --- /dev/null +++ b/tests/closure/uclosures.nim @@ -0,0 +1,23 @@ +# This test is included from within tunittests +import unittest + +test "loop variables are captured by ref": + var funcs: seq[proc (): int {.closure.}] = @[] + + for i in 0..10: + let ii = i + funcs.add do -> int: return ii * ii + + check funcs[0]() == 100 + check funcs[3]() == 100 + +test "loop variables in closureScope are captured by copy": + var funcs: seq[proc (): int {.closure.}] = @[] + + for i in 0..10: + closureScope: + let ii = i + funcs.add do -> int: return ii * ii + + check funcs[0]() == 0 + check funcs[3]() == 9 |