diff options
Diffstat (limited to 'tests/generics/tparam_binding.nim')
-rw-r--r-- | tests/generics/tparam_binding.nim | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/generics/tparam_binding.nim b/tests/generics/tparam_binding.nim new file mode 100644 index 000000000..643e9b226 --- /dev/null +++ b/tests/generics/tparam_binding.nim @@ -0,0 +1,28 @@ +discard """ + errormsg: "got (ref Matrix[2, 2, system.float], ref Matrix[2, 1, system.float])" + line: 27 +""" + +type + Matrix[M,N: static[int]; T: SomeReal] = distinct array[0..(M*N - 1), T] + +let a = new Matrix[2,2,float] +let b = new Matrix[2,1,float] + +proc foo[M,N: static[int],T](a: ref Matrix[M, N, T], b: ref Matrix[M, N, T])= + discard + +foo(a, a) + +proc bar[M,N: static[int],T](a: ref Matrix[M, M, T], b: ref Matrix[M, N, T])= + discard + +bar(a, b) +bar(a, a) + +proc baz[M,N: static[int],T](a: ref Matrix[N, N, T], b: ref Matrix[M, N, T])= + discard + +baz(a, a) +baz(a, b) + |