diff options
author | Araq <rumpf_a@web.de> | 2017-02-16 11:18:10 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2017-02-16 11:18:10 +0100 |
commit | c9dd6908ae461e7996193d31eaab6ec0a1fd701b (patch) | |
tree | 240007da9047c0a509658964b37b24da7f361e57 /compiler | |
parent | 01c785e0aa2f2b7f36aa51c34bbedfbf2e74fb39 (diff) | |
parent | 6499462303f1e4ccc8e9a3174985f563e688f566 (diff) | |
download | Nim-c9dd6908ae461e7996193d31eaab6ec0a1fd701b.tar.gz |
resolved conflict
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ccgexprs.nim | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index 95a7beada..6f7e83c18 100644 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -220,7 +220,7 @@ proc genOptAsgnTuple(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) = optAsgnLoc(src, t, field), newflags) proc genOptAsgnObject(p: BProc, dest, src: TLoc, flags: TAssignmentFlags, - t: PNode) = + t: PNode, typ: PType) = if t == nil: return let newflags = if src.s == OnStatic: @@ -232,10 +232,11 @@ proc genOptAsgnObject(p: BProc, dest, src: TLoc, flags: TAssignmentFlags, case t.kind of nkSym: let field = t.sym + if field.loc.r == nil: fillObjectFields(p.module, typ) genAssignment(p, optAsgnLoc(dest, field.typ, field.loc.r), optAsgnLoc(src, field.typ, field.loc.r), newflags) of nkRecList: - for child in items(t): genOptAsgnObject(p, dest, src, newflags, child) + for child in items(t): genOptAsgnObject(p, dest, src, newflags, child, typ) else: discard proc genGenericAsgn(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) = @@ -315,9 +316,9 @@ proc genAssignment(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) = genGenericAsgn(p, dest, src, flags) elif needsComplexAssignment(ty): if ty.sons[0].isNil and asgnComplexity(ty.n) <= 4: - discard getTypeDesc(p.module, dest.t) + discard getTypeDesc(p.module, ty) internalAssert ty.n != nil - genOptAsgnObject(p, dest, src, flags, ty.n) + genOptAsgnObject(p, dest, src, flags, ty.n, ty) else: genGenericAsgn(p, dest, src, flags) else: |