From 0518794291f138c1120dc4a039f218598f380eb3 Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 10 Apr 2019 10:10:08 +0200 Subject: make parseopt compile with --newruntime --- compiler/transf.nim | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'compiler/transf.nim') diff --git a/compiler/transf.nim b/compiler/transf.nim index a597123de..30c77fed9 100644 --- a/compiler/transf.nim +++ b/compiler/transf.nim @@ -648,8 +648,12 @@ proc transformFor(c: PTransf, n: PNode): PTransNode = of paDirectMapping: idNodeTablePut(newC.mapping, formal, arg) of paFastAsgn: + var t = formal.typ + if formal.ast != nil and formal.ast.typ.destructor != nil and t.destructor == nil: + t = formal.ast.typ # better use the type that actually has a destructor. # generate a temporary and produce an assignment statement: - var temp = newTemp(c, formal.typ, formal.info) + var temp = newTemp(c, t, formal.info) + #temp.sym.flags.incl sfCursor addVar(v, temp) add(stmtList, newAsgnStmt(c, nkFastAsgn, temp, arg.PTransNode)) idNodeTablePut(newC.mapping, formal, temp) -- cgit 1.4.1-2-gfad0