From 6ed18a8b2488821df057d38fabb1d7cd921d97e7 Mon Sep 17 00:00:00 2001 From: Araq Date: Sun, 17 Mar 2013 20:11:16 +0100 Subject: [PATCH] fixes #366 --- compiler/ccgexprs.nim | 5 ++++- tests/compile/tobjconstr2.nim | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 tests/compile/tobjconstr2.nim diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index a99654cbd..426f1b813 100644 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -1088,7 +1088,10 @@ proc genObjConstr(p: BProc, e: PNode, d: var TLoc) = tmp2.s = onHeap tmp2.heapRoot = tmp.r expr(p, it.sons[1], tmp2) - genAssignment(p, d, tmp, {}) + if d.k == locNone: + d = tmp + else: + genAssignment(p, d, tmp, {}) proc genSeqConstr(p: BProc, t: PNode, d: var TLoc) = var arr: TLoc diff --git a/tests/compile/tobjconstr2.nim b/tests/compile/tobjconstr2.nim new file mode 100644 index 000000000..ef5446999 --- /dev/null +++ b/tests/compile/tobjconstr2.nim @@ -0,0 +1,8 @@ +type TFoo{.exportc.} = object + x:int + +var s{.exportc.}: seq[TFoo] = @[] + +s.add TFoo(x: 42) + +echo s[0].x