diff options
Diffstat (limited to 'compiler/cgen.nim')
-rw-r--r-- | compiler/cgen.nim | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/cgen.nim b/compiler/cgen.nim index 678a15bc9..f8d62e1af 100644 --- a/compiler/cgen.nim +++ b/compiler/cgen.nim @@ -1171,6 +1171,11 @@ proc genProcAux*(m: BModule, prc: PSym) = returnStmt = ropecg(p.module, "\treturn $1;$n", [rdLoc(res.loc)]) elif sfConstructor in prc.flags: fillLoc(resNode.sym.loc, locParam, resNode, "this", OnHeap) + let ty = resNode.sym.typ[0] #generate nim's ctor + for i in 1..<resNode.sym.ast.len: + let field = resNode.sym.ast[i] + genFieldObjConstr(p, ty, useTemp = false, isRef = false, + field[0], field[1], check = nil, resNode.sym.loc, "(*this)", tmpInfo) else: fillResult(p.config, resNode, prc.typ) assignParam(p, res, prc.typ[0]) |