From 296e7c9f40a69958579fd8169ddc38cf0a72730c Mon Sep 17 00:00:00 2001 From: Araq Date: Thu, 7 Mar 2013 19:19:40 +0100 Subject: next steps for object construction expressions --- compiler/ccgexprs.nim | 33 ++++++++++++++++++++++++++++++++- todo.txt | 1 + 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index ccabb3600..b20af0cfc 100755 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -732,7 +732,38 @@ proc genCheckedRecordField(p: BProc, e: PNode, d: var TLoc) = genRecordField(p, e.sons[0], d) proc genObjConstr(p: BProc, e: PNode, d: var TLoc) = - internalError(e.info, "too implement") + var tmp: TLoc + var t = e.typ.skipTypes(abstractInst) + getTemp(p, t, tmp) + let isRef = t.kind == tyRef + var r = rdLoc(tmp) + if isRef: + t = t.sons[0].skipTypes(abstractInst) + r = ropef("(*$1)", r) + # XXX generate 'new' call here + + discard getTypeDesc(p.module, t) + for i in 1 ..