diff options
author | Araq <rumpf_a@web.de> | 2014-12-31 16:08:07 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-12-31 16:08:07 +0100 |
commit | e751a0af573a5a65eaaabf15fecb1f1c010b6bf6 (patch) | |
tree | 1654faf325452b5a379c3198c680b4e4a36295bc /tests | |
parent | 2ee24013360649d9ec3749e5dcdce37716900854 (diff) | |
parent | 13e07f5d667c569355470a56e8a730ca8a1862e5 (diff) | |
download | Nim-e751a0af573a5a65eaaabf15fecb1f1c010b6bf6.tar.gz |
Merge branch 'devel' of https://github.com/Araq/Nim into devel
Diffstat (limited to 'tests')
-rw-r--r-- | tests/generics/t1056.nim | 26 | ||||
-rw-r--r-- | tests/types/tisopr.nim | 17 |
2 files changed, 43 insertions, 0 deletions
diff --git a/tests/generics/t1056.nim b/tests/generics/t1056.nim new file mode 100644 index 000000000..73a24a76a --- /dev/null +++ b/tests/generics/t1056.nim @@ -0,0 +1,26 @@ +discard """ + output: '''TMatrix[3, 3, system.int] +3 +3''' +""" + +import typetraits + +type + TMatrix*[N,M: static[int], T] = object + data*: array[0..N*M-1, T] + + TMat2[T] = TMatrix[2,2,T] + +proc echoMatrix(a: TMatrix) = + echo a.type.name + echo TMatrix.N + +proc echoMat2(a: TMat2) = + echo TMat2.M + +var m = TMatrix[3,3,int](data: [1,2,3,4,5,6,7,8,9]) + +echoMatrix m +echoMat2 m + diff --git a/tests/types/tisopr.nim b/tests/types/tisopr.nim index 3c2b9ee5e..8b7fe4e46 100644 --- a/tests/types/tisopr.nim +++ b/tests/types/tisopr.nim @@ -34,3 +34,20 @@ type yes s.items is Iter[TNumber] no s.items is Iter[float] +type + Foo[N: static[int], T] = object + field: array[1..N, T] + + Bar[T] = Foo[4, T] + Baz[N: static[int]] = Foo[N, float] + +no Foo[2, float] is Foo[3, float] +no Foo[2, float] is Foo[2, int] + +yes Foo[4, string] is Foo[4, string] +yes Bar[int] is Foo[4, int] +yes Foo[4, int] is Bar[int] + +no Foo[4, int] is Baz[4] +yes Foo[4, float] is Baz[4] + |