summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-12-31 16:08:07 +0100
committerAraq <rumpf_a@web.de>2014-12-31 16:08:07 +0100
commite751a0af573a5a65eaaabf15fecb1f1c010b6bf6 (patch)
tree1654faf325452b5a379c3198c680b4e4a36295bc /tests
parent2ee24013360649d9ec3749e5dcdce37716900854 (diff)
parent13e07f5d667c569355470a56e8a730ca8a1862e5 (diff)
downloadNim-e751a0af573a5a65eaaabf15fecb1f1c010b6bf6.tar.gz
Merge branch 'devel' of https://github.com/Araq/Nim into devel
Diffstat (limited to 'tests')
-rw-r--r--tests/generics/t1056.nim26
-rw-r--r--tests/types/tisopr.nim17
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]
+