add typetraits.OrdinalEnum, enumutils.symbolName (#17281)

This commit is contained in:
Timothee Cour
2021-03-10 08:08:24 -08:00
committed by GitHub
parent 3dc1bd0d09
commit eb07a5a75b
4 changed files with 57 additions and 9 deletions

View File

@@ -12,5 +12,26 @@ template main =
doAssert A.toSeq == [a0, a1, a2]
doAssert B[float].toSeq == [B[float].b0, B[float].b1]
block: # symbolName
block:
type A2 = enum a20, a21, a22
doAssert $a21 == "a21"
doAssert a21.symbolName == "a21"
proc `$`(a: A2): string = "foo"
doAssert $a21 == "foo"
doAssert a21.symbolName == "a21"
var a = a22
doAssert $a == "foo"
doAssert a.symbolName == "a22"
type B = enum
b0 = (10, "kb0")
b1 = "kb1"
b2
let b = B.low
doAssert b.symbolName == "b0"
doAssert $b == "kb0"
static: doAssert B.high.symbolName == "b2"
static: main()
main()