make more tests green; system.repr does not produce 'nil' for strings and seqs anymore

This commit is contained in:
Araq 2018-08-22 15:37:57 +02:00
commit 27f488e5d9
4 changed files with 10 additions and 7 deletions

View file

@ -29,7 +29,9 @@ proc reprStrAux(result: var string, s: cstring; len: int) =
if cast[pointer](s) == nil: if cast[pointer](s) == nil:
add result, "nil" add result, "nil"
return return
add result, reprPointer(cast[pointer](s)) & "\"" if len > 0:
add result, reprPointer(cast[pointer](s))
add result, "\""
for i in 0 .. pred(len): for i in 0 .. pred(len):
let c = s[i] let c = s[i]
case c case c
@ -162,9 +164,10 @@ when not defined(useNimRtl):
proc reprSequence(result: var string, p: pointer, typ: PNimType, proc reprSequence(result: var string, p: pointer, typ: PNimType,
cl: var ReprClosure) = cl: var ReprClosure) =
if p == nil: if p == nil:
add result, "nil" add result, "[]"
return return
result.add(reprPointer(p) & "[") result.add(reprPointer(p))
result.add '['
var bs = typ.base.size var bs = typ.base.size
for i in 0..cast[PGenericSeq](p).len-1: for i in 0..cast[PGenericSeq](p).len-1:
if i > 0: add result, ", " if i > 0: add result, ", "

View file

@ -35,7 +35,7 @@ proc main() {.async.} =
fut = newFutureVar[string]() fut = newFutureVar[string]()
let retFut = failureTest(fut, true) let retFut = failureTest(fut, true)
yield retFut yield retFut
doAssert(fut.read().isNil) doAssert(fut.read().len == 0)
doAssert(fut.finished) doAssert(fut.finished)
fut = newFutureVar[string]() fut = newFutureVar[string]()

View file

@ -3,8 +3,8 @@ discard """
0 0
0 0
0 0
[[a = nil, [[a = "",
b = nil]]''' b = []]]'''
""" """
# bug #1475 # bug #1475