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 ..