diff --git a/compiler/injectdestructors.nim b/compiler/injectdestructors.nim index be2df8c1f2..b0fa733982 100644 --- a/compiler/injectdestructors.nim +++ b/compiler/injectdestructors.nim @@ -493,25 +493,6 @@ proc passCopyToSink(n: PNode; c: var Con; s: var Scope): PNode = # no need to destroy it. result.add tmp -proc isDangerousSeq(t: PType): bool {.inline.} = - let t = t.skipTypes(abstractInst) - result = t.kind == tySequence and tfHasOwned notin t.elementType.flags - -proc containsConstSeq(n: PNode): bool = - if n.kind == nkBracket and n.len > 0 and n.typ != nil and isDangerousSeq(n.typ): - return true - result = false - case n.kind - of nkExprEqExpr, nkExprColonExpr, nkHiddenStdConv, nkHiddenSubConv, nkCast: - result = containsConstSeq(n[1]) - of nkObjConstr, nkClosure: - for i in 1.. 0 and isDangerousSeq(ri.typ): - inc c.inEnsureMove, isEnsureMove - result = c.genCopy(dest, ri, flags) - dec c.inEnsureMove, isEnsureMove - result.add p(ri, c, s, consumed) - c.finishCopy(result, dest, flags, isFromSink = false) - else: - result = c.genSink(s, dest, p(ri, c, s, consumed), flags) - of nkObjConstr, nkTupleConstr, nkClosure, nkCharLit..nkNilLit: + of nkBracket, nkObjConstr, nkTupleConstr, nkClosure, nkCharLit..nkNilLit: result = c.genSink(s, dest, p(ri, c, s, consumed), flags) of nkSym: if isSinkParam(ri.sym) and isLastRead(ri, c, s):