summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorflywind <xzsflywind@gmail.com>2022-04-04 18:05:23 +0800
committerGitHub <noreply@github.com>2022-04-04 12:05:23 +0200
commit83dabb69ae0f6c0bb269594a5b73af964b809bc7 (patch)
tree217ea0bcba5e4b94bd23fad92299c319ca244bd7 /tests
parentc3f03cfa5dfa2ca47f8e4cf99bbcdbf5a7d16eda (diff)
downloadNim-83dabb69ae0f6c0bb269594a5b73af964b809bc7.tar.gz
Fix bug in freshVarForClosureIter. Fixes #18474 (#19675) [backport]
* Fix bug in freshVarForClosureIter. Fixes #18474.

freshVarForClosureIter was returning non-fresh symbols sometimes.
Fixed by making addField return the generated PSym.

* remove discardable

Co-authored-by: Nick Smallbone <nick@smallbone.se>
Diffstat (limited to 'tests')
-rw-r--r--tests/iter/tclosureiters.nim18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/iter/tclosureiters.nim b/tests/iter/tclosureiters.nim
index afeaabc7d..85611373c 100644
--- a/tests/iter/tclosureiters.nim
+++ b/tests/iter/tclosureiters.nim
@@ -21,6 +21,15 @@ discard """
 2
 70
 0
+(1, 1)
+(1, 2)
+(1, 3)
+(2, 1)
+(2, 2)
+(2, 3)
+(3, 1)
+(3, 2)
+(3, 3)
 '''
 """
 
@@ -152,3 +161,12 @@ var love = iterator: int {.closure.} =
 
 for i in love():
   echo i
+
+# bug #18474
+iterator pairs(): (int, int) {.closure.} =
+  for i in 1..3:
+    for j in 1..3:
+      yield (i, j)
+
+for pair in pairs():
+  echo pair