From 88114948c41f38d7366dc8d80abc09f00c2492fa 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 --- 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 24363cad0b..0a28fd1a05 100644 --- a/compiler/transf.nim +++ b/compiler/transf.nim @@ -324,6 +324,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..