diff options
author | Araq <rumpf_a@web.de> | 2014-08-30 22:44:33 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-08-30 22:44:33 +0200 |
commit | c9563d28a8ef3ef74826d4c211cac13301963dd5 (patch) | |
tree | e4b86f88eec8fdbcc043cb7880a9b5cb57cbdc57 /compiler | |
parent | 0257f389fef6492906e47761f7e366921113bba6 (diff) | |
download | Nim-c9563d28a8ef3ef74826d4c211cac13301963dd5.tar.gz |
fixes #1067
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ccgstmts.nim | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim index 66bfbba8c..efa8b0adc 100644 --- a/compiler/ccgstmts.nim +++ b/compiler/ccgstmts.nim @@ -37,6 +37,15 @@ 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 |