Fixes #2749, traverse full inheritance for reprRecord

This commit is contained in:
Göran Krampe 2015-05-20 11:59:02 +02:00
commit 2cceaff88a

View file

@ -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,