mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-11 15:23:05 +00:00
Rollup merge of #44590 - oli-obk:allow_unused_mut_on_vars, r=eddyb
Get `allow(unused_mut)` to work on `let` bindings fixes #40491
This commit is contained in:
commit
c4f29d4cc5
@ -85,20 +85,12 @@ impl LintPass for UnusedMut {
|
||||
}
|
||||
|
||||
impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnusedMut {
|
||||
fn check_expr(&mut self, cx: &LateContext, e: &hir::Expr) {
|
||||
if let hir::ExprMatch(_, ref arms, _) = e.node {
|
||||
for a in arms {
|
||||
self.check_unused_mut_pat(cx, &a.pats)
|
||||
}
|
||||
}
|
||||
fn check_arm(&mut self, cx: &LateContext, a: &hir::Arm) {
|
||||
self.check_unused_mut_pat(cx, &a.pats)
|
||||
}
|
||||
|
||||
fn check_stmt(&mut self, cx: &LateContext, s: &hir::Stmt) {
|
||||
if let hir::StmtDecl(ref d, _) = s.node {
|
||||
if let hir::DeclLocal(ref l) = d.node {
|
||||
self.check_unused_mut_pat(cx, slice::ref_slice(&l.pat));
|
||||
}
|
||||
}
|
||||
fn check_local(&mut self, cx: &LateContext, l: &hir::Local) {
|
||||
self.check_unused_mut_pat(cx, slice::ref_slice(&l.pat));
|
||||
}
|
||||
|
||||
fn check_fn(&mut self,
|
||||
|
@ -110,3 +110,11 @@ fn foo(mut a: isize) {
|
||||
let mut a = 3;
|
||||
let mut b = vec![2];
|
||||
}
|
||||
|
||||
// make sure the lint attribute can be turned off on let statements
|
||||
#[deny(unused_mut)]
|
||||
fn bar() {
|
||||
#[allow(unused_mut)]
|
||||
let mut a = 3;
|
||||
let mut b = vec![2]; //~ ERROR: variable does not need to be mutable
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user