summary refs log tree commit diff stats
path: root/tests/generics/module_with_generics.nim
diff options
context:
space:
mode:
authorZahary Karadjov <zahary@gmail.com>2018-05-03 19:42:20 +0300
committerAndreas Rumpf <rumpf_a@web.de>2018-05-07 09:37:49 +0200
commit72976139009b9ae74669dc2443474f091c99f2e4 (patch)
tree48921b7781a9a3d3dc47ce93700352a245730e1d /tests/generics/module_with_generics.nim
parent4ab1cfb0b07b33015652e8f0d0444f1feed18a57 (diff)
downloadNim-72976139009b9ae74669dc2443474f091c99f2e4.tar.gz
Bugfix: The compiler were not inserting proper downcasts for generic types
This resulted in a codegen error in C++ mode, because the generic
types were not defined in modules where calls requiring downcasts
were used (generating a downcast forces the inclusion of the full
definition of the involved types).
Diffstat (limited to 'tests/generics/module_with_generics.nim')
-rw-r--r--tests/generics/module_with_generics.nim14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/generics/module_with_generics.nim b/tests/generics/module_with_generics.nim
new file mode 100644
index 000000000..e801a4790
--- /dev/null
+++ b/tests/generics/module_with_generics.nim
@@ -0,0 +1,14 @@
+type
+  Base[T] = ref object {.inheritable.}
+    value*: T
+
+  Derived[T] = ref object of Base[T]
+    derivedValue*: T
+
+proc makeDerived*[T](v: T): Derived[T] =
+  new result
+  result.value = v
+
+proc setBaseValue*[T](a: Base[T], value: T) =
+  a.value = value
+