Fixed $ on None[T] for T with .name (#8293)

This commit is contained in:
Quelklef 2018-07-12 05:01:48 -04:00 • committed by Andreas Rumpf
commit ac3c4a94ad

View file

@ -189,7 +189,7 @@ proc `$`*[T](self: Option[T]): string =
if self.isSome: if self.isSome:
"Some(" & $self.val & ")" "Some(" & $self.val & ")"
else: else:
"None[" & T.name & "]" "None[" & name(T) & "]"
when isMainModule: when isMainModule:
import unittest, sequtils import unittest, sequtils
@ -298,3 +298,17 @@ when isMainModule:
test "none[T]": test "none[T]":
check(none[int]().isNone) check(none[int]().isNone)
check(none(int) == none[int]()) check(none(int) == none[int]())
test "$ on typed with .name":
type Named = object
name: string
let nobody = none(Named)
check($nobody == "None[Named]")
test "$ on type with name()":
type Person = object
myname: string
let noperson = none(Person)
check($noperson == "None[Person]")