diff options
author | Zahary Karadjov <zahary@gmail.com> | 2018-05-03 19:42:20 +0300 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-05-07 09:37:49 +0200 |
commit | 72976139009b9ae74669dc2443474f091c99f2e4 (patch) | |
tree | 48921b7781a9a3d3dc47ce93700352a245730e1d /tests/generics/module_with_generics.nim | |
parent | 4ab1cfb0b07b33015652e8f0d0444f1feed18a57 (diff) | |
download | Nim-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.nim | 14 |
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 + |