summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorringabout <43030857+ringabout@users.noreply.github.com>2024-04-26 19:00:25 +0800
committerGitHub <noreply@github.com>2024-04-26 19:00:25 +0800
commit407c0cb64a804e6f5ffa693ec0e79c9171393a29 (patch)
tree64e3ed5addd6794baf99acd8ebcfd60e06ccb954
parent4601bb0255335e2c1dfc78ebc33312933215ee95 (diff)
downloadNim-407c0cb64a804e6f5ffa693ec0e79c9171393a29.tar.gz
fixes #23522; fixes pre-existing wrong type for iter in `liftIterSym` (#23538)
fixes #23522
-rw-r--r--compiler/lambdalifting.nim3
-rw-r--r--tests/js/t7109.nim3
2 files changed, 4 insertions, 2 deletions
diff --git a/compiler/lambdalifting.nim b/compiler/lambdalifting.nim
index c32a1c614..faa043cb4 100644
--- a/compiler/lambdalifting.nim
+++ b/compiler/lambdalifting.nim
@@ -258,8 +258,7 @@ proc liftIterSym*(g: ModuleGraph; n: PNode; idgen: IdGenerator; owner: PSym): PN
   let iter = n.sym
   assert iter.isIterator
 
-  result = newNodeIT(nkStmtListExpr, n.info, n.typ)
-
+  result = newNodeIT(nkStmtListExpr, n.info, iter.typ)
   let hp = getHiddenParam(g, iter)
   var env: PNode
   if owner.isIterator:
diff --git a/tests/js/t7109.nim b/tests/js/t7109.nim
index 015d11d87..a1a3b718e 100644
--- a/tests/js/t7109.nim
+++ b/tests/js/t7109.nim
@@ -3,3 +3,6 @@ iterator iter*(): int {.closure.} =
 
 var x = iter
 doAssert x() == 3
+
+let fIt = iterator(): int = yield 70
+doAssert fIt() == 70