diff options
Diffstat (limited to 'tests/destructor/tcomplexobjconstr.nim')
-rw-r--r-- | tests/destructor/tcomplexobjconstr.nim | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/destructor/tcomplexobjconstr.nim b/tests/destructor/tcomplexobjconstr.nim new file mode 100644 index 000000000..23c615783 --- /dev/null +++ b/tests/destructor/tcomplexobjconstr.nim @@ -0,0 +1,33 @@ +discard """ + output: "true" + cmd: "nim c --gc:arc $file" +""" + +# bug #12826 + +type + MyObject1* = object of RootObj + z*: string + + MyObject2* = object of RootObj + x*: float + name*: string + subobj: MyObject1 + case flag*: bool + of false: + more: array[3, MyObject1] + of true: y*: float + +var x = new(MyObject2) +assert x of MyObject2 +assert x.subobj of MyObject1 +assert x.more[2] of MyObject1 +assert x.more[2] of RootObj + +var y: MyObject2 +assert y of MyObject2 +assert y.subobj of MyObject1 +assert y.more[2] of MyObject1 +assert y.more[2] of RootObj + +echo "true" |