summary refs log tree commit diff stats
path: root/tests/destructor
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2019-05-28 21:30:41 +0200
committerAraq <rumpf_a@web.de>2019-05-28 21:30:41 +0200
commit8bb1a6b04189b6c0f7438ac1b1c17099789f2bd6 (patch)
tree6960f9902d3848c159a661f5b2e46e90b9aa9388 /tests/destructor
parentbcccc7dec8d818fc60d843e4dff85011f6466ccb (diff)
downloadNim-8bb1a6b04189b6c0f7438ac1b1c17099789f2bd6.tar.gz
fixes #11205
Diffstat (limited to 'tests/destructor')
-rw-r--r--tests/destructor/tcaseobj_transitions.nim33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/destructor/tcaseobj_transitions.nim b/tests/destructor/tcaseobj_transitions.nim
new file mode 100644
index 000000000..9377d57b0
--- /dev/null
+++ b/tests/destructor/tcaseobj_transitions.nim
@@ -0,0 +1,33 @@
+discard """
+  cmd: '''nim c --newruntime $file'''
+  output: '''no crash'''
+"""
+
+# bug #11205
+
+type
+  MyEnum = enum
+    A, B, C
+  MyCaseObject = object
+    case kind: MyEnum
+    of A: iseq: seq[int]
+    of B: fseq: seq[float]
+    of C: str: string
+
+
+  MyCaseObjectB = object # carefully constructed to use the same enum,
+                         # but a different object type!
+    case kind: MyEnum
+    of A, C: x: int
+    of B: fseq: seq[float]
+
+
+var x = MyCaseObject(kind: A)
+x.iseq.add 1
+#x.kind = B
+#x.fseq.add -3.0
+
+var y = MyCaseObjectB(kind: A)
+y.x = 1
+y.kind = C
+echo "no crash"