summary refs log tree commit diff stats
path: root/tests/reject/tgenconstraints.nim
diff options
context:
space:
mode:
authorZahary Karadjov <zahary@gmail.com>2013-08-15 22:55:11 +0300
committerZahary Karadjov <zahary@gmail.com>2013-08-19 01:48:25 +0300
commitca3a4ce6721c87cfcbb9eb02002ecf8aeb89233c (patch)
tree76a5fd56fc4ae9cd459d4703c3287b9a088aecb2 /tests/reject/tgenconstraints.nim
parent4980ef85e254178747dc8ea9fd59b058d33b2df1 (diff)
downloadNim-ca3a4ce6721c87cfcbb9eb02002ecf8aeb89233c.tar.gz
hacky fix for generic constraints matching
Diffstat (limited to 'tests/reject/tgenconstraints.nim')
-rw-r--r--tests/reject/tgenconstraints.nim30
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
+