From dbed9310baa0a24d215fad90e8cbab380959fb87 Mon Sep 17 00:00:00 2001 From: metagn Date: Fri, 11 Apr 2025 23:50:13 +0300 Subject: [PATCH] ignore typeof in closure iterators (#24861) fixes #24859 (cherry picked from commit f58cd51fc48c724859469c50e42c8f2fb4e39aad) --- compiler/closureiters.nim | 2 +- tests/iter/ttypeofclosureiter.nim | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 tests/iter/ttypeofclosureiter.nim diff --git a/compiler/closureiters.nim b/compiler/closureiters.nim index 87c5b795eb..70a17e5441 100644 --- a/compiler/closureiters.nim +++ b/compiler/closureiters.nim @@ -163,7 +163,7 @@ type const nkSkip = {nkEmpty..nkNilLit, nkTemplateDef, nkTypeSection, nkStaticStmt, - nkCommentStmt, nkMixinStmt, nkBindStmt} + procDefs + nkCommentStmt, nkMixinStmt, nkBindStmt, nkTypeOfExpr} + procDefs proc newStateAccess(ctx: var Ctx): PNode = if ctx.stateVarSym.isNil: diff --git a/tests/iter/ttypeofclosureiter.nim b/tests/iter/ttypeofclosureiter.nim new file mode 100644 index 0000000000..3ea3c1d442 --- /dev/null +++ b/tests/iter/ttypeofclosureiter.nim @@ -0,0 +1,7 @@ +# issue #24859 + +template u(): int = + yield 0 + 0 +iterator s(): int {.closure.} = discard default(typeof(u())) +let _ = s