summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-11-19 00:37:36 +0100
committerAndreas Rumpf <rumpf_a@web.de>2017-11-19 00:37:36 +0100
commitd072229975f4b092130e17f7cd91cb0fc4c1dec9 (patch)
tree188be313bcc5d2b34265893e17c5fa29f9bbd49f /tests
parente96189c9c31383fa7ce125bc2a4386bea79415c8 (diff)
downloadNim-d072229975f4b092130e17f7cd91cb0fc4c1dec9.tar.gz
fixes #6724
Diffstat (limited to 'tests')
-rw-r--r--tests/ccgbugs/trefseqsort.nim33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/ccgbugs/trefseqsort.nim b/tests/ccgbugs/trefseqsort.nim
new file mode 100644
index 000000000..2410770cf
--- /dev/null
+++ b/tests/ccgbugs/trefseqsort.nim
@@ -0,0 +1,33 @@
+discard """
+  output: '''@[0, 4, 9, 1, 3, 2]
+@[0, 1, 2, 3, 9]'''
+"""
+# bug #6724
+import algorithm
+
+type
+  Bar = object
+    bar: ref seq[int]
+  Foo = ref Bar
+
+proc test(x: ref Foo) =
+  x.bar[].del(1)
+  x.bar[].sort(cmp)
+
+proc main() =
+  var foo: ref Foo
+  new(foo)
+
+  var s = @[0, 4, 9, 1, 3, 2]
+
+  var sr: ref seq[int]
+  new(sr)
+  sr[] = s
+
+  foo[] = Foo(bar: sr)
+  echo($foo.bar[])
+
+  test(foo)
+  echo($foo.bar[])
+
+main()