summary refs log tree commit diff stats
path: root/tests/destructor/tlists.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2019-11-13 19:55:05 +0100
committerAndreas Rumpf <rumpf_a@web.de>2019-11-13 23:29:21 +0100
commitf22d3c75aa68833ae1b01d747d0c71074ccef310 (patch)
treed9b939bedba2212ba8deba8966c89bf531a57db9 /tests/destructor/tlists.nim
parentbcab3ed06c2c4996f7efac6e7733b514ad83e1d4 (diff)
downloadNim-f22d3c75aa68833ae1b01d747d0c71074ccef310.tar.gz
ARC: closure inside object constructor now works
Diffstat (limited to 'tests/destructor/tlists.nim')
-rw-r--r--tests/destructor/tlists.nim15
1 files changed, 14 insertions, 1 deletions
diff --git a/tests/destructor/tlists.nim b/tests/destructor/tlists.nim
index 7a81e602e..a9c78ab75 100644
--- a/tests/destructor/tlists.nim
+++ b/tests/destructor/tlists.nim
@@ -1,5 +1,7 @@
 discard """
-  output: '''Success
+  output: '''
+@[1, 2, 3]
+Success
 @["a", "b", "c"]
 0'''
   cmd: '''nim c --gc:destructors $file'''
@@ -32,7 +34,18 @@ proc tsimpleClosureIterator =
   for it in foobar(myc):
     echo it
 
+type
+  LazyList = ref object
+    c: proc() {.closure.}
+
+proc tlazyList =
+  let dep = @[1, 2, 3]
+  var x = LazyList(c: proc () = echo(dep))
+  x.c()
+
 let startMem = getOccupiedMem()
+tlazyList()
+
 mkManyLeaks()
 tsimpleClosureIterator()
 echo getOccupiedMem() - startMem