From c73142d8527308850c0d20f1d3a116b5629e93d2 Mon Sep 17 00:00:00 2001 From: Araq Date: Thu, 11 Sep 2014 10:02:45 +0200 Subject: [PATCH] fixes #1067 --- compiler/ccgstmts.nim | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim index eca026e12..3004e353b 100644 --- a/compiler/ccgstmts.nim +++ b/compiler/ccgstmts.nim @@ -37,6 +37,16 @@ proc genVarTuple(p: BProc, n: PNode) = var tup, field: TLoc if n.kind != nkVarTuple: internalError(n.info, "genVarTuple") var L = sonsLen(n) + + # if we have a something that's been captured, use the lowering instead: + var useLowering = false + for i in countup(0, L-3): + if n[i].kind != nkSym: + useLowering = true; break + if useLowering: + genStmts(p, lowerTupleUnpacking(n, p.prc)) + return + genLineDir(p, n) initLocExpr(p, n.sons[L-1], tup) var t = tup.t