summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorZahary Karadjov <zahary@gmail.com>2015-01-02 21:25:16 +0200
committerZahary Karadjov <zahary@gmail.com>2015-01-02 23:58:24 +0200
commit2f90be13e2be9224c2760b98f6949bdfafc7992a (patch)
tree7dea1521459da14b195d721622778309ed240c9b /tests
parent1d5ecc0deac508e7ebb3bf9df01aa34d5025d83d (diff)
downloadNim-2f90be13e2be9224c2760b98f6949bdfafc7992a.tar.gz
fix #1820
Diffstat (limited to 'tests')
-rw-r--r--tests/metatype/tstaticparams.nim38
1 files changed, 37 insertions, 1 deletions
diff --git a/tests/metatype/tstaticparams.nim b/tests/metatype/tstaticparams.nim
index e53e478f0..e98a2871f 100644
--- a/tests/metatype/tstaticparams.nim
+++ b/tests/metatype/tstaticparams.nim
@@ -1,6 +1,6 @@
 discard """
   file: "tstaticparams.nim"
-  output: "abracadabra\ntest\n3\n15\n4\n2"
+  output: "abracadabra\ntest\n3\n15\n4\n2\nfloat\n3\nfloat\nyin\nyang"
 """
 
 type 
@@ -83,3 +83,39 @@ reject matrix_2(tmat, ar1)
 reject matrix_3(tmat, ar2)
 reject matrix_4(tmat, ar1)
 
+# bug 1820
+
+type
+  T1820_1[T; Y: static[int]] = object
+    bar: T
+
+proc intOrFloat*[Y](f: T1820_1[int, Y]) = echo "int"
+proc intOrFloat*[Y](f: T1820_1[float, Y]) = echo "float"
+proc threeOrFour*[T](f: T1820_1[T, 3]) =  echo "3"
+proc threeOrFour*[T](f: T1820_1[T, 4]) = echo "4"
+
+var foo_1: T1820_1[float, 3]
+
+foo_1.intOrFloat
+foo_1.threeOrFour
+
+type
+  YinAndYang = enum
+    Yin,
+    Yang
+
+  T1820_2[T; Y: static[YinAndYang]] = object
+    bar: T
+
+proc intOrFloat*[Y](f: T1820_2[int, Y]) = echo "int"
+proc intOrFloat*[Y](f: T1820_2[float, Y]) = echo "float"
+proc yinOrYang*[T](f: T1820_2[T, YinAndYang.Yin]) = echo "yin"
+proc yinOrYang*[T](f: T1820_2[T, Yang]) = echo "yang"
+
+var foo_2: T1820_2[float, Yin]
+var foo_3: T1820_2[float, YinAndYang.Yang]
+
+foo_2.intOrFloat
+foo_2.yinOrYang
+foo_3.yinOrYang
+