summary refs log tree commit diff stats
path: root/tests/stdlib
diff options
context:
space:
mode:
authorhlaaftana <10591326+hlaaftana@users.noreply.github.com>2021-02-09 15:04:36 +0300
committerGitHub <noreply@github.com>2021-02-09 13:04:36 +0100
commit49ee2f7f3bb943eb56db9ef16c709df1b3bd0f0a (patch)
tree96966eb94c680781ba7fcdf757a120b4b01e2540 /tests/stdlib
parent41d32c3ea3ef0dd1ce3eed27d1ec312b7d0ecf7e (diff)
downloadNim-49ee2f7f3bb943eb56db9ef16c709df1b3bd0f0a.tar.gz
fix #16967 [backport:1.2] (#16976)
* fix #16967 [backport:1.2]

* move test to tsugar
Diffstat (limited to 'tests/stdlib')
-rw-r--r--tests/stdlib/tsugar.nim16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/stdlib/tsugar.nim b/tests/stdlib/tsugar.nim
index 968a4ccae..72abadae7 100644
--- a/tests/stdlib/tsugar.nim
+++ b/tests/stdlib/tsugar.nim
@@ -79,6 +79,22 @@ template main() =
             closure2 = () => (i, j)
     doAssert closure2() == (5, 3)
 
+    block: # bug #16967
+      var s = newSeq[proc (): int](5)
+      {.push exportc.}
+      proc bar() =
+        for i in 0 ..< s.len:
+          let foo = i + 1
+          capture foo:
+            s[i] = proc(): int = foo
+      {.pop.}
+
+      bar()
+
+      for i, p in s.pairs:
+        let foo = i + 1
+        doAssert p() == foo
+
   block: # dup
     block dup_with_field:
       type