summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/destructor/tselect.nim26
1 files changed, 25 insertions, 1 deletions
diff --git a/tests/destructor/tselect.nim b/tests/destructor/tselect.nim
index 9262b47d4..c22bf7203 100644
--- a/tests/destructor/tselect.nim
+++ b/tests/destructor/tselect.nim
@@ -1,6 +1,9 @@
 discard """
    output: '''abcsuffix
-xyzsuffix'''
+xyzsuffix
+destroy foo 2
+destroy foo 1
+'''
   cmd: '''nim c --gc:arc $file'''
 """
 
@@ -24,3 +27,24 @@ proc test(param: string; cond: bool) =
 
 test("suffix", true)
 test("suffix", false)
+
+
+
+#--------------------------------------------------------------------
+# issue #13659
+
+type
+  Foo = ref object
+    data: int
+    parent: Foo
+
+proc `=destroy`(self: var type(Foo()[])) =
+  echo "destroy foo ", self.data
+  for i in self.fields: i.reset
+
+proc getParent(self: Foo): Foo = self.parent
+
+var foo1 = Foo(data: 1)
+var foo2 = Foo(data: 2, parent: foo1)
+
+foo2.getParent.data = 1
\ No newline at end of file