summary refs log tree commit diff stats
path: root/tests/ccgbugs
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2018-02-11 13:55:56 +0100
committerAndreas Rumpf <rumpf_a@web.de>2018-02-11 13:55:56 +0100
commit358709e9cbc4ed3e084dc6d1db313a862b8356e4 (patch)
tree0ff1f5c9bfb965220e20f916af5610fb1928310b /tests/ccgbugs
parent2c1f1f21bf93293940624898cfc37f2c3d42711b (diff)
downloadNim-358709e9cbc4ed3e084dc6d1db313a862b8356e4.tar.gz
fixes #6960
Diffstat (limited to 'tests/ccgbugs')
-rw-r--r--tests/ccgbugs/tcodegenbug1.nim31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/ccgbugs/tcodegenbug1.nim b/tests/ccgbugs/tcodegenbug1.nim
index 671974087..fce74de0c 100644
--- a/tests/ccgbugs/tcodegenbug1.nim
+++ b/tests/ccgbugs/tcodegenbug1.nim
@@ -1,3 +1,34 @@
+discard """
+  output: '''obj = (inner: (kind: Just, id: 7))
+obj.inner.id = 7
+id = 7
+obj = (inner: (kind: Just, id: 7))'''
+"""
+
+# bug #6960
+
+import future
+type
+  Kind = enum None, Just, Huge
+  Inner = object
+    case kind: Kind
+    of None: discard
+    of Just: id: int
+    of Huge: a,b,c,d,e,f: string
+  Outer = object
+    inner: Inner
+
+
+proc shouldDoNothing(id: int): Inner =
+  dump id
+  Inner(kind: Just, id: id)
+
+var obj = Outer(inner: Inner(kind: Just, id: 7))
+dump obj
+dump obj.inner.id
+obj.inner = shouldDoNothing(obj.inner.id)
+dump obj
+
 import os
 
 type