about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLuqman Aden <laden@csclub.uwaterloo.ca>2013-10-23 03:50:22 -0400
committerLuqman Aden <laden@csclub.uwaterloo.ca>2013-10-25 01:50:57 -0400
commit26488b7465860d64871ec4f5fc118f8854200b3d (patch)
tree4a923b3d989ab5c7c0d958cec1e34575e76192a4
parentf5e64aeb41ac1f567ba4261a66d4edb70b6a943f (diff)
downloadrust-26488b7465860d64871ec4f5fc118f8854200b3d.tar.gz
rust-26488b7465860d64871ec4f5fc118f8854200b3d.zip
librustc: Don't emit unused mut lint twice.
-rw-r--r--src/librustc/middle/lint.rs41
1 files changed, 17 insertions, 24 deletions
diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs
index ccabfe28dd7..1ac14dfc4b1 100644
--- a/src/librustc/middle/lint.rs
+++ b/src/librustc/middle/lint.rs
@@ -813,32 +813,25 @@ fn check_unused_unsafe(cx: &Context, e: &ast::Expr) {
 }
 
 fn check_unused_mut_pat(cx: &Context, p: @ast::Pat) {
-    fn check_unused_mut_pat_inner(cx: &Context, p: @ast::Pat) {
-        let mut used = false;
-        let mut bindings = 0;
-        do pat_util::pat_bindings(cx.tcx.def_map, p) |_, id, _, _| {
-            used = used || cx.tcx.used_mut_nodes.contains(&id);
-            bindings += 1;
-        }
-        if !used {
-            let msg = if bindings == 1 {
-                "variable does not need to be mutable"
-            } else {
-                "variables do not need to be mutable"
-            };
-            cx.span_lint(unused_mut, p.span, msg);
-        }
-    }
-    do ast_util::walk_pat(p) |pat| {
-        match pat.node {
-            ast::PatIdent(ast::BindByValue(ast::MutMutable), _, _) => {
-                check_unused_mut_pat_inner(cx, pat);
+    match p.node {
+        ast::PatIdent(ast::BindByValue(ast::MutMutable), _, _) => {
+            let mut used = false;
+            let mut bindings = 0;
+            do pat_util::pat_bindings(cx.tcx.def_map, p) |_, id, _, _| {
+                used = used || cx.tcx.used_mut_nodes.contains(&id);
+                bindings += 1;
+            }
+            if !used {
+                let msg = if bindings == 1 {
+                    "variable does not need to be mutable"
+                } else {
+                    "variables do not need to be mutable"
+                };
+                cx.span_lint(unused_mut, p.span, msg);
             }
-            _ => {}
         }
-
-        true
-    };
+        _ => ()
+    }
 }
 
 fn check_unnecessary_allocation(cx: &Context, e: &ast::Expr) {