diff --git a/compiler/transf.nim b/compiler/transf.nim index 0ed2e10e82..c6f0dbb332 100644 --- a/compiler/transf.nim +++ b/compiler/transf.nim @@ -259,7 +259,8 @@ proc transformBlock(c: PTransf, n: PNode): PNode = var labl: PSym if c.inlining > 0: labl = newLabel(c, n[0]) - c.transCon.mapping[n[0].sym.itemId] = newSymNode(labl) + if n[0].kind != nkEmpty: + c.transCon.mapping[n[0].sym.itemId] = newSymNode(labl) else: labl = if n[0].kind != nkEmpty: diff --git a/tests/iter/titer_issues.nim b/tests/iter/titer_issues.nim index 2452102bd3..efea76c02e 100644 --- a/tests/iter/titer_issues.nim +++ b/tests/iter/titer_issues.nim @@ -412,3 +412,15 @@ block: # bug #24033 collections.add (id, str, $num) doAssert collections[1] == (1, "foo", "3.14") + + +block: # bug #25121 + iterator k(): int = + when nimvm: + yield 0 + else: + yield 0 + + for _ in k(): + (proc() = (; let _ = block: 0))() +