summary refs log tree commit diff stats
path: root/tests/generics/tgenericrefs.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/generics/tgenericrefs.nim')
-rw-r--r--tests/generics/tgenericrefs.nim26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/generics/tgenericrefs.nim b/tests/generics/tgenericrefs.nim
new file mode 100644
index 000000000..ef931dfa7
--- /dev/null
+++ b/tests/generics/tgenericrefs.nim
@@ -0,0 +1,26 @@
+type 
+  PA[T] = ref TA[T]
+  TA[T] = object
+    field: T
+var a: PA[string]
+new(a)
+a.field = "some string"
+
+when false:
+  # Compiles unless you use var a: PA[string]
+  type 
+    PA = ref TA
+    TA[T] = object
+
+
+  # Cannot instantiate:
+  type 
+    TA[T] = object
+      a: PA[T]
+    PA[T] = ref TA[T]
+
+  type 
+    PA[T] = ref TA[T]
+    TA[T] = object
+
+