From 31d64b57d58437adc72a7633464609d84036a76b Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Wed, 15 Oct 2025 18:11:15 +0800 Subject: [PATCH] fixes #25046; Infinite loop with anonymous iterator (#25221) fixes #25046 ```nim proc makeiter(v: string): iterator(): string = return iterator(): string = yield v # loops for c in makeiter("test")(): echo "loops ", c ``` becomes ```nim var temp = makeiter("test") for c in temp(): echo "loops ", c ``` for closures that might have side effects --- compiler/lambdalifting.nim | 14 ++++++++++++++ tests/closure/tnested.nim | 20 ++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/compiler/lambdalifting.nim b/compiler/lambdalifting.nim index 048b286aae..e9195644e1 100644 --- a/compiler/lambdalifting.nim +++ b/compiler/lambdalifting.nim @@ -975,6 +975,20 @@ proc liftForLoop*(g: ModuleGraph; body: PNode; idgen: IdGenerator; owner: PSym): for i in 0..