about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-09-23 21:41:09 +0000
committerbors <bors@rust-lang.org>2015-09-23 21:41:09 +0000
commit4f15e465e5e838aa2a57cccf57af241699d68f51 (patch)
treeddb8e0713e076b438330c1cec6ae6528cea66e1e
parentafae2ff723393b3ab4ccffef6ac7c6d1809e2da0 (diff)
parent54792febe063f8dd013576121ec56c80142a26eb (diff)
downloadrust-4f15e465e5e838aa2a57cccf57af241699d68f51.tar.gz
rust-4f15e465e5e838aa2a57cccf57af241699d68f51.zip
Auto merge of #28596 - sanxiyn:dedup-unused, r=alexcrichton
Fix #22599.
-rw-r--r--src/librustc/middle/liveness.rs3
-rw-r--r--src/test/compile-fail/issue-22599.rs20
2 files changed, 21 insertions, 2 deletions
diff --git a/src/librustc/middle/liveness.rs b/src/librustc/middle/liveness.rs
index 9bb19bb37d8..7eb8f7c9806 100644
--- a/src/librustc/middle/liveness.rs
+++ b/src/librustc/middle/liveness.rs
@@ -1399,9 +1399,8 @@ fn check_arm(this: &mut Liveness, arm: &hir::Arm) {
 
 fn check_expr(this: &mut Liveness, expr: &Expr) {
     match expr.node {
-      hir::ExprAssign(ref l, ref r) => {
+      hir::ExprAssign(ref l, _) => {
         this.check_lvalue(&**l);
-        this.visit_expr(&**r);
 
         visit::walk_expr(this, expr);
       }
diff --git a/src/test/compile-fail/issue-22599.rs b/src/test/compile-fail/issue-22599.rs
new file mode 100644
index 00000000000..b9ea3583296
--- /dev/null
+++ b/src/test/compile-fail/issue-22599.rs
@@ -0,0 +1,20 @@
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![deny(unused_variables)]
+
+fn f(_: i32) {}
+
+fn main() {
+    let mut v = 0;
+    f(v);
+    v = match 0 { a => 0 }; //~ ERROR: unused variable: `a`
+    f(v);
+}