summary refs log tree commit diff stats
path: root/tests/generics/tgenericdefaults.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/generics/tgenericdefaults.nim')
-rw-r--r--tests/generics/tgenericdefaults.nim29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/generics/tgenericdefaults.nim b/tests/generics/tgenericdefaults.nim
new file mode 100644
index 000000000..ad96f1851
--- /dev/null
+++ b/tests/generics/tgenericdefaults.nim
@@ -0,0 +1,29 @@
+type 
+  TFoo[T, U, R = int] = object
+    x: T
+    y: U
+    z: R
+
+  TBar[T] = TFoo[T, array[4, T], T]
+
+var x1: TFoo[int, float]
+
+static:
+  assert type(x1.x) is int
+  assert type(x1.y) is float
+  assert type(x1.z) is int
+  
+var x2: TFoo[string, R = float, U = seq[int]]
+
+static:
+  assert type(x2.x) is string
+  assert type(x2.y) is seq[int]
+  assert type(x2.z) is float
+
+var x3: TBar[float]
+
+static:
+  assert type(x3.x) is float
+  assert type(x3.y) is array[4, float]
+  assert type(x3.z) is float
+