diff --git a/src/einheit.nim b/src/einheit.nim index a75b523..071f230 100644 --- a/src/einheit.nim +++ b/src/einheit.nim @@ -34,9 +34,6 @@ proc `$`*[T](ar: openarray[T]): string = proc `$`*[T](some:typedesc[T]): string = name(T) -proc `$`*(s: ref object): string = - result = ($type(s)).replace(":ObjectType", "") & $s[] - template tupleObjToStr(obj): string {.dirty.} = var res = $type(obj) template helper(n) {.gensym.} = @@ -53,6 +50,8 @@ template tupleObjToStr(obj): string {.dirty.} = else: res.add($type(value)) helper(value) + elif (value is string): + res.add("\"" & $value & "\"") else: res.add($value) firstElement = false @@ -60,6 +59,9 @@ template tupleObjToStr(obj): string {.dirty.} = helper(obj) res +proc `$`*(s: ref object): string = + result = "ref " & tupleObjToStr(s[]).replace(":ObjectType", "") + proc objToStr*[T: object](obj: var T): string = tupleObjToStr(obj) @@ -79,6 +81,10 @@ macro toString*(obj: typed): untyped = template toStrAst(obj): string = einheit.objToStr(obj) result = getAst(toStrAst(obj)) + of ntyString: + template toStrAst(obj): string = + "\"" & $(obj) & "\"" + result = getAst(toStrAst(obj)) else: template toStrAst(obj): string = $(obj) @@ -594,6 +600,7 @@ macro testSuite*(head: untyped, body: untyped): untyped = echo " Where:" for k, v in vals.pairs: echo " ", k, " -> ", v + echo " Location: $1; line $2".format(filename, line) self.lastTestFailed = true