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>
This commit is contained in:
flywind 2022-04-04 18:05:23 +08:00 • committed by GitHub
commit 83dabb69ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 21 deletions

View file

@ -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