diff options
author | Araq <rumpf_a@web.de> | 2019-05-28 21:30:41 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2019-05-28 21:30:41 +0200 |
commit | 8bb1a6b04189b6c0f7438ac1b1c17099789f2bd6 (patch) | |
tree | 6960f9902d3848c159a661f5b2e46e90b9aa9388 /tests/destructor | |
parent | bcccc7dec8d818fc60d843e4dff85011f6466ccb (diff) | |
download | Nim-8bb1a6b04189b6c0f7438ac1b1c17099789f2bd6.tar.gz |
fixes #11205
Diffstat (limited to 'tests/destructor')
-rw-r--r-- | tests/destructor/tcaseobj_transitions.nim | 33 |
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" |