diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-08-24 11:48:21 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2016-08-24 11:48:21 +0200 |
commit | 18e37cad0829e2f8eb1d8733f91d5d3ec79a94c9 (patch) | |
tree | 846be46daaba83f2d284f58dacf94acfc71d1286 /tests/ccgbugs/twrong_rc_for_refarray.nim | |
parent | 636e74fe397a7e93dd1955be549c901b3e9c8312 (diff) | |
download | Nim-18e37cad0829e2f8eb1d8733f91d5d3ec79a94c9.tar.gz |
fixes #4653
Diffstat (limited to 'tests/ccgbugs/twrong_rc_for_refarray.nim')
-rw-r--r-- | tests/ccgbugs/twrong_rc_for_refarray.nim | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/ccgbugs/twrong_rc_for_refarray.nim b/tests/ccgbugs/twrong_rc_for_refarray.nim new file mode 100644 index 000000000..99bdac5e1 --- /dev/null +++ b/tests/ccgbugs/twrong_rc_for_refarray.nim @@ -0,0 +1,26 @@ +discard """ + output: '''m[0][0] = 1.0 +m[0][0] = 2.0''' +""" +# bug #4653 +type + Vector = ref array[2, float64] + Matrix = ref array[2, Vector] + +proc newVector(): Vector = + new(result) + +proc newMatrix(): Matrix = + new(result) + for ix in 0 .. 1: + result[ix] = newVector() + +let m = newMatrix() + +m[0][0] = 1.0 +echo "m[0][0] = ", m[0][0] + +GC_fullCollect() + +m[0][0] = 2.0 +echo "m[0][0] = ", m[0][0] |