diff --git a/compiler/injectdestructors.nim b/compiler/injectdestructors.nim index 013ab1c50600f..6570483a941ef 100644 --- a/compiler/injectdestructors.nim +++ b/compiler/injectdestructors.nim @@ -485,7 +485,9 @@ proc passCopyToSink(n: PNode; c: var Con; s: var Scope): PNode = ("cannot move '$1', passing '$1' to a sink parameter introduces an implicit copy") % $n) else: if c.graph.config.selectedGC in {gcArc, gcOrc, gcAtomicArc}: - assert(not containsManagedMemory(nTyp)) + if containsManagedMemory(nTyp): + localError(c.graph.config, n.info, errInternal, + "type contains managed memory: '$1' for '$2' " % [$nTyp, $n] ) if nTyp.skipTypes(abstractInst).kind in {tyOpenArray, tyVarargs}: localError(c.graph.config, n.info, "cannot create an implicit openArray copy to be passed to a sink parameter") result.add newTree(nkAsgn, tmp, p(n, c, s, normal))