make tmissing_ccgtrav_unique_type green again
This commit is contained in:
parent
feb0d21b22
commit
862a32fe85
2 changed files with 9 additions and 1 deletions
|
|
@ -718,6 +718,8 @@ proc genTupleElem(p: BProc, e: PNode, d: var TLoc) =
|
||||||
a: TLoc
|
a: TLoc
|
||||||
i: int
|
i: int
|
||||||
initLocExpr(p, e.sons[0], a)
|
initLocExpr(p, e.sons[0], a)
|
||||||
|
let tupType = a.t.skipTypes(abstractInst)
|
||||||
|
assert tupType.kind == tyTuple
|
||||||
d.inheritLocation(a)
|
d.inheritLocation(a)
|
||||||
discard getTypeDesc(p.module, a.t) # fill the record's fields.loc
|
discard getTypeDesc(p.module, a.t) # fill the record's fields.loc
|
||||||
var r = rdLoc(a)
|
var r = rdLoc(a)
|
||||||
|
|
@ -725,7 +727,7 @@ proc genTupleElem(p: BProc, e: PNode, d: var TLoc) =
|
||||||
of nkIntLit..nkUInt64Lit: i = int(e.sons[1].intVal)
|
of nkIntLit..nkUInt64Lit: i = int(e.sons[1].intVal)
|
||||||
else: internalError(e.info, "genTupleElem")
|
else: internalError(e.info, "genTupleElem")
|
||||||
addf(r, ".Field$1", [rope(i)])
|
addf(r, ".Field$1", [rope(i)])
|
||||||
putIntoDest(p, d, a.t.sons[i], r, a.s)
|
putIntoDest(p, d, tupType.sons[i], r, a.s)
|
||||||
|
|
||||||
proc lookupFieldAgain(p: BProc, ty: PType; field: PSym; r: var Rope): PSym =
|
proc lookupFieldAgain(p: BProc, ty: PType; field: PSym; r: var Rope): PSym =
|
||||||
var ty = ty
|
var ty = ty
|
||||||
|
|
|
||||||
|
|
@ -916,6 +916,9 @@ proc genObjectFields(m: BModule, typ, origType: PType, n: PNode, expr: Rope) =
|
||||||
var tmp = discriminatorTableName(m, typ, field)
|
var tmp = discriminatorTableName(m, typ, field)
|
||||||
var L = lengthOrd(field.typ)
|
var L = lengthOrd(field.typ)
|
||||||
assert L > 0
|
assert L > 0
|
||||||
|
if field.loc.r == nil: fillObjectFields(m, typ)
|
||||||
|
if field.loc.t == nil:
|
||||||
|
internalError(n.info, "genObjectFields")
|
||||||
addf(m.s[cfsTypeInit3], "$1.kind = 3;$n" &
|
addf(m.s[cfsTypeInit3], "$1.kind = 3;$n" &
|
||||||
"$1.offset = offsetof($2, $3);$n" & "$1.typ = $4;$n" &
|
"$1.offset = offsetof($2, $3);$n" & "$1.typ = $4;$n" &
|
||||||
"$1.name = $5;$n" & "$1.sons = &$6[0];$n" &
|
"$1.name = $5;$n" & "$1.sons = &$6[0];$n" &
|
||||||
|
|
@ -949,6 +952,9 @@ proc genObjectFields(m: BModule, typ, origType: PType, n: PNode, expr: Rope) =
|
||||||
of nkSym:
|
of nkSym:
|
||||||
var field = n.sym
|
var field = n.sym
|
||||||
if field.bitsize == 0:
|
if field.bitsize == 0:
|
||||||
|
if field.loc.r == nil: fillObjectFields(m, typ)
|
||||||
|
if field.loc.t == nil:
|
||||||
|
internalError(n.info, "genObjectFields")
|
||||||
addf(m.s[cfsTypeInit3], "$1.kind = 1;$n" &
|
addf(m.s[cfsTypeInit3], "$1.kind = 1;$n" &
|
||||||
"$1.offset = offsetof($2, $3);$n" & "$1.typ = $4;$n" &
|
"$1.offset = offsetof($2, $3);$n" & "$1.typ = $4;$n" &
|
||||||
"$1.name = $5;$n", [expr, getTypeDesc(m, origType),
|
"$1.name = $5;$n", [expr, getTypeDesc(m, origType),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue