diff options
author | Zahary Karadjov <zahary@gmail.com> | 2015-01-02 21:25:16 +0200 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2015-01-02 23:58:24 +0200 |
commit | 2f90be13e2be9224c2760b98f6949bdfafc7992a (patch) | |
tree | 7dea1521459da14b195d721622778309ed240c9b /tests | |
parent | 1d5ecc0deac508e7ebb3bf9df01aa34d5025d83d (diff) | |
download | Nim-2f90be13e2be9224c2760b98f6949bdfafc7992a.tar.gz |
fix #1820
Diffstat (limited to 'tests')
-rw-r--r-- | tests/metatype/tstaticparams.nim | 38 |
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 + |