about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorUlrik Sverdrup <bluss@users.noreply.github.com>2016-03-04 22:52:34 +0100
committerUlrik Sverdrup <bluss@users.noreply.github.com>2016-03-04 22:52:34 +0100
commitcfe4efd0523cd8106b20ba732f7d7677548f8157 (patch)
tree3d526efa497ab2f45b7403c2369a0dbcdd84a2e6 /src/test
parentd5b6599ab64b2e44d2fe13eea884e2369ffdaa47 (diff)
Do not trigger unused_variables lint for variable modified through AddAssign
Visit an overloaded += like a method call and not like an assignment.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/liveness-unused.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/compile-fail/liveness-unused.rs b/src/test/compile-fail/liveness-unused.rs
index ddc120b8646..3aab953eb79 100644
--- a/src/test/compile-fail/liveness-unused.rs
+++ b/src/test/compile-fail/liveness-unused.rs
@@ -127,5 +127,24 @@ fn f6() {
     }) += 1;
 }
 
+
+struct MutRef<'a>(&'a mut i32);
+
+impl<'a> AddAssign<i32> for MutRef<'a> {
+    fn add_assign(&mut self, rhs: i32) {
+        *self.0 += rhs;
+    }
+}
+
+fn f7() {
+    let mut a = 1;
+    {
+        // `b` does not trigger unused_variables
+        let mut b = MutRef(&mut a);
+        b += 1;
+    }
+    drop(a);
+}
+
 fn main() {
 }