Fixes #2749, traverse full inheritance for reprRecord
This commit is contained in:
parent
5d4ee87f3b
commit
2cceaff88a
1 changed files with 11 additions and 5 deletions
|
|
@ -193,11 +193,17 @@ when not defined(useNimRtl):
|
||||||
proc reprRecord(result: var string, p: pointer, typ: PNimType,
|
proc reprRecord(result: var string, p: pointer, typ: PNimType,
|
||||||
cl: var TReprClosure) =
|
cl: var TReprClosure) =
|
||||||
add result, "["
|
add result, "["
|
||||||
let oldLen = result.len
|
var curTyp = typ
|
||||||
reprRecordAux(result, p, typ.node, cl)
|
var lastPart = ""
|
||||||
if typ.base != nil:
|
while curTyp.base != nil:
|
||||||
if oldLen != result.len: add result, ",\n"
|
var part = ""
|
||||||
reprRecordAux(result, p, typ.base.node, cl)
|
reprRecordAux(part, p, curTyp.node, cl)
|
||||||
|
if part.len > 0:
|
||||||
|
if lastPart.len > 0:
|
||||||
|
add result, ",\n"
|
||||||
|
add result, part
|
||||||
|
lastPart = part
|
||||||
|
curTyp = curTyp.base
|
||||||
add result, "]"
|
add result, "]"
|
||||||
|
|
||||||
proc reprRef(result: var string, p: pointer, typ: PNimType,
|
proc reprRef(result: var string, p: pointer, typ: PNimType,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue