about summary refs log tree commit diff
path: root/src/test/run-fail
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2013-08-13 14:59:33 -0400
committerNiko Matsakis <niko@alum.mit.edu>2013-08-13 15:52:04 -0400
commitafb20775d1836c79975dfb9889fdeffe0c8baf58 (patch)
tree7d8b890c84bc83b780a30fc99d288a911a0b895e /src/test/run-fail
parent0d817ee869387322dec4d3f7d407dcc9f91c2632 (diff)
downloadrust-afb20775d1836c79975dfb9889fdeffe0c8baf58.tar.gz
rust-afb20775d1836c79975dfb9889fdeffe0c8baf58.zip
Fix freezing of @mut Objects when passing as argument
Diffstat (limited to 'src/test/run-fail')
-rw-r--r--src/test/run-fail/borrowck-wg-fail-object-arg.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/run-fail/borrowck-wg-fail-object-arg.rs b/src/test/run-fail/borrowck-wg-fail-object-arg.rs
new file mode 100644
index 00000000000..c70d752ef30
--- /dev/null
+++ b/src/test/run-fail/borrowck-wg-fail-object-arg.rs
@@ -0,0 +1,22 @@
+// error-pattern:borrowed
+
+trait Foo {
+    fn foo(&self, @mut int);
+}
+
+impl Foo for int {
+    fn foo(&self, x: @mut int) {
+        *x += *self;
+    }
+}
+
+fn it_takes_two(f: &Foo, g: &mut Foo) {
+}
+
+fn main() {
+    let x = @mut 3_i;
+    let y = x as @mut Foo;
+    let z = y;
+
+    it_takes_two(y, z);
+}