typetraits: features and fixes (#14791)
* typetraits: add support for nnkTypeOfExpr * typetraits: don't wrap typedesc symbols in StaticParam * typetraits: add nested generics support to genericParams * typetraits: make genericParams understand array[I, T] whackiness Also moved tests to ttypetraits * typetraits: clarify comment on genericParams
This commit is contained in:
parent
36fa79a524
commit
56b3d422b0
2 changed files with 56 additions and 3 deletions
|
|
@ -221,6 +221,23 @@ block genericParams:
|
|||
doAssert genericParams(Bar4) is (StaticParam[5.0], string)
|
||||
doAssert genericParams(Bar[F, string]) is (StaticParam[5.0], string)
|
||||
|
||||
block typeof:
|
||||
var
|
||||
a: seq[int]
|
||||
b: array[42, float]
|
||||
c: array[char, int]
|
||||
d: array[1..2, char]
|
||||
|
||||
doAssert genericParams(typeof(a)).get(0) is int
|
||||
doAssert genericParams(typeof(b)) is (range[0..41], float)
|
||||
doAssert genericParams(typeof(c)) is (char, int)
|
||||
doAssert genericParams(typeof(d)) is (range[1..2], char)
|
||||
|
||||
block nestedContainers:
|
||||
doAssert genericParams(seq[Foo[string, float]]).get(0) is Foo[string, float]
|
||||
doAssert genericParams(array[10, Foo[Bar[1, int], Bar[2, float]]]) is (StaticParam[10], Foo[Bar[1, int], Bar[2, float]])
|
||||
doAssert genericParams(array[1..9, int]) is (range[1..9], int)
|
||||
|
||||
##############################################
|
||||
# bug 13095
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue