diff options
author | Zahary Karadjov <zahary@gmail.com> | 2013-08-15 22:55:11 +0300 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2013-08-19 01:48:25 +0300 |
commit | ca3a4ce6721c87cfcbb9eb02002ecf8aeb89233c (patch) | |
tree | 76a5fd56fc4ae9cd459d4703c3287b9a088aecb2 /tests/reject/tgenconstraints.nim | |
parent | 4980ef85e254178747dc8ea9fd59b058d33b2df1 (diff) | |
download | Nim-ca3a4ce6721c87cfcbb9eb02002ecf8aeb89233c.tar.gz |
hacky fix for generic constraints matching
Diffstat (limited to 'tests/reject/tgenconstraints.nim')
-rw-r--r-- | tests/reject/tgenconstraints.nim | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/reject/tgenconstraints.nim b/tests/reject/tgenconstraints.nim new file mode 100644 index 000000000..e32aa877b --- /dev/null +++ b/tests/reject/tgenconstraints.nim @@ -0,0 +1,30 @@ +discard """ + file: "tgenconstraints.nim" + line: 25 + errormsg: "cannot instantiate T2" +""" + +type + T1[T: int|string] = object + x: T + + T2[T: Ordinal] = object + x: T + +var x1: T1[int] +var x2: T1[string] +var x3: T2[int] + +proc foo[T](x: T): T2[T] {.discardable.} = + var o: T1[T] + +foo(10) + +proc bar(x: string|TNumber): T1[type(x)] {.discardable.} = + when type(x) is TNumber: + var o: T2[type(x)] + +bar "test" +bar 100 +bar 1.1 + |