summary refs log tree commit diff stats
path: root/tests/stdlib/tmisc_issues.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stdlib/tmisc_issues.nim')
-rw-r--r--tests/stdlib/tmisc_issues.nim22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/stdlib/tmisc_issues.nim b/tests/stdlib/tmisc_issues.nim
index ed57818b1..86dcf4162 100644
--- a/tests/stdlib/tmisc_issues.nim
+++ b/tests/stdlib/tmisc_issues.nim
@@ -1,7 +1,10 @@
 discard """
+  matrix: "--mm:refc; --mm:orc"
   targets: "c cpp js"
 """
 
+import std/assertions
+
 # bug #20227
 type
   Data = object
@@ -15,3 +18,22 @@ type
 
 var x: Object = Object(data: Test(Data(id: 12)))
 doAssert Data(x.data).id == 12
+
+block: # bug #16771
+  type A = object
+    n: int
+
+  proc foo(a, b: var A) =
+    swap a, b
+
+  var a, b: A
+  a.n = 42
+  b.n = 1
+  doAssert a.n == 42
+  doAssert b.n == 1
+  a.swap b
+  doAssert a.n == 1
+  doAssert b.n == 42
+  a.foo b
+  doAssert a.n == 42
+  doAssert b.n == 1