From 4e1b5ee702139df93e8c343c59ef8bb7108d3023 Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Tue, 13 Feb 2024 15:10:28 +0800 Subject: [PATCH] fixes #18104; tranform one liner var decl before templates expansion (#23294) fixes #18104 (cherry picked from commit 1e9a3c438bed693bc95d5b1a9501e1386163e1cc) --- compiler/semstmts.nim | 18 ++++++++++++++++++ tests/varstmt/tvardecl.nim | 7 +++++++ 2 files changed, 25 insertions(+) diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 1fde91888b..a071d83648 100644 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -780,6 +780,24 @@ proc makeVarTupleSection(c: PContext, n, a, def: PNode, typ: PType, symkind: TSy proc semVarOrLet(c: PContext, n: PNode, symkind: TSymKind): PNode = var b: PNode result = copyNode(n) + + # transform var x, y = 12 into var x = 12; var y = 12 + # bug #18104; transformation should be finished before templates expansion + # TODO: move warnings for tuple here + var transformed = copyNode(n) + for i in 0.. 3 and a[^1].kind != nkEmpty: + for j in 0..