diff --git a/compiler/destroyer.nim b/compiler/destroyer.nim index ee930018a..a4bed4674 100644 --- a/compiler/destroyer.nim +++ b/compiler/destroyer.nim @@ -482,93 +482,93 @@ proc moveOrCopy(dest, ri: PNode; c: var Con): PNode = else: moveOrCopy(dest, ri_part, c) case ri.kind - of nkCallKinds: + of nkCallKinds: + result = genSink(c, dest.typ, dest, ri) + # watch out and no not transform 'ri' twice if it's a call: + let ri2 = copyNode(ri) + let parameters = ri[0].typ + let L = if parameters != nil: parameters.len else: 0 + ri2.add ri[0] + for i in 1..