summary refs log tree commit diff stats
path: root/tests/gc/t22173.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/gc/t22173.nim')
-rw-r--r--tests/gc/t22173.nim20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/gc/t22173.nim b/tests/gc/t22173.nim
new file mode 100644
index 000000000..3fa3cc503
--- /dev/null
+++ b/tests/gc/t22173.nim
@@ -0,0 +1,20 @@
+discard """
+  cmd: '''nim c --gc:refc -r $file'''
+"""
+const Memo = 100 * 1024
+
+proc fff(v: sink string): iterator(): char =
+  return iterator(): char =
+    for c in v:
+      yield c
+
+var tmp = newString(Memo)
+
+let iter = fff(move(tmp))
+
+while true:
+  let v = iter()
+  if finished(iter):
+    break
+
+doAssert getOccupiedMem() < Memo * 3