From 3bd03d71a0bbf3a8af5fe3ea1e84146c90adbedb Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Fri, 23 Jun 2023 04:17:23 +0800 Subject: [PATCH] fixes #21110; duplicate proc definitions for inline iters (#21136) fixes #21110; duplicate proc definitions for iters (cherry picked from commit 88114948c41f38d7366dc8d80abc09f00c2492fa) --- compiler/transf.nim | 8 ++++++++ tests/iter/titer.nim | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/compiler/transf.nim b/compiler/transf.nim index 30b05e5a3f..b8c59d5586 100644 --- a/compiler/transf.nim +++ b/compiler/transf.nim @@ -316,6 +316,14 @@ proc introduceNewLocalVars(c: PTransf, n: PNode): PNode = if a.kind == nkSym: n[1] = transformSymAux(c, a) return n + of nkProcDef: # todo optimize nosideeffects? + result = newTransNode(n) + let x = freshVar(c, n[namePos].sym) + idNodeTablePut(c.transCon.mapping, n[namePos].sym, x) + result[namePos] = x # we have to copy proc definitions for iters + for i in 1..