summary refs log tree commit diff stats
path: root/tests/generics/tcan.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/generics/tcan.nim')
-rw-r--r--tests/generics/tcan.nim46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/generics/tcan.nim b/tests/generics/tcan.nim
new file mode 100644
index 000000000..bbefa7233
--- /dev/null
+++ b/tests/generics/tcan.nim
@@ -0,0 +1,46 @@
+discard """
+  output: '''
+'''
+"""
+
+# Created by Eric Doughty-Papassideris on 2011-02-16.
+
+block talias_generic:
+  type
+    TGen[T] = object
+    TGen2[T] = TGen[T]
+
+
+block talias_specialised:
+  type
+    TGen[T] = object
+    TSpef = TGen[string]
+  var s: TSpef
+
+
+block tinherit:
+  type
+    TGen[T] = object of RootObj
+      x, y: T
+    TSpef[T] = object of TGen[T]
+
+  var s: TSpef[float]
+  s.x = 0.4
+  s.y = 0.6
+
+
+block tspecialise:
+  type
+    TGen[T] {.inheritable.} = object
+    TSpef = object of TGen[string]
+
+
+block tspecialised_equivalent:
+  type
+    TGen[T] = tuple[a: T]
+    TSpef = tuple[a: string]
+
+  var
+    a: TGen[string]
+    b: TSpef
+  a = b