From 5278cf80eb4adce3110fd991d772c18e7b4cb0be Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Mon, 18 Nov 2019 12:33:44 +0100 Subject: ARC: closure bugfixes (#12677) * ARC: closure bugfixes * progress * ARC closures: create =hooks for captured parameters * ARC: always destroy constructions like tuples, arrays properly, even in edge cases * fixes a regression --- tests/destructor/tlists.nim | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/destructor/tlists.nim') diff --git a/tests/destructor/tlists.nim b/tests/destructor/tlists.nim index 78c09b105..f5786d936 100644 --- a/tests/destructor/tlists.nim +++ b/tests/destructor/tlists.nim @@ -51,7 +51,26 @@ proc tleakingNewStmt = for i in 0..10: new(x) +iterator infinite(): int {.closure.} = + var i = 0 + while true: + yield i + inc i + +iterator take(it: iterator (): int, numToTake: int): int {.closure.} = + var i = 0 + for x in it(): + if i >= numToTake: + break + yield x + inc i + +proc take3 = + for x in infinite.take(3): + discard + let startMem = getOccupiedMem() +take3() tlazyList() mkManyLeaks() -- cgit 1.4.1-2-gfad0