From f58cd51fc48c724859469c50e42c8f2fb4e39aad 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 --- 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 dd6eb986ee..7e0f54b12e 100644 --- a/compiler/closureiters.nim +++ b/compiler/closureiters.nim @@ -164,7 +164,7 @@ type const nkSkip = {nkEmpty..nkNilLit, nkTemplateDef, nkTypeSection, nkStaticStmt, - nkCommentStmt, nkMixinStmt, nkBindStmt} + procDefs + nkCommentStmt, nkMixinStmt, nkBindStmt, nkTypeOfExpr} + procDefs emptyStateLabel = -1 localNotSeen = -1 localRequiresLifting = -2 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