From 9fefe36737a1ebc35f96e46df3591b1ed74362a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= Date: Sun, 2 Jun 2019 18:30:40 +0200 Subject: [PATCH] Rustup for https://github.com/rust-lang/rust/pull/61276 --- clippy_lints/src/escape.rs | 2 +- clippy_lints/src/loops.rs | 29 +++++++--------------- clippy_lints/src/misc.rs | 7 +++--- clippy_lints/src/needless_pass_by_value.rs | 2 +- clippy_lints/src/utils/usage.rs | 12 ++++----- 5 files changed, 21 insertions(+), 31 deletions(-) diff --git a/clippy_lints/src/escape.rs b/clippy_lints/src/escape.rs index 8870b3f3b0ce..d0ebf881d7ba 100644 --- a/clippy_lints/src/escape.rs +++ b/clippy_lints/src/escape.rs @@ -79,7 +79,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for BoxedLocal { let fn_def_id = cx.tcx.hir().local_def_id_from_hir_id(hir_id); let region_scope_tree = &cx.tcx.region_scope_tree(fn_def_id); - ExprUseVisitor::new(&mut v, cx.tcx, cx.param_env, region_scope_tree, cx.tables, None).consume_body(body); + ExprUseVisitor::new(&mut v, cx.tcx, fn_def_id, cx.param_env, region_scope_tree, cx.tables, None).consume_body(body); for node in v.set { span_lint( diff --git a/clippy_lints/src/loops.rs b/clippy_lints/src/loops.rs index c4febdd4ddff..ff88b6f78227 100644 --- a/clippy_lints/src/loops.rs +++ b/clippy_lints/src/loops.rs @@ -1662,7 +1662,7 @@ fn check_for_mutation( }; let def_id = def_id::DefId::local(body.hir_id.owner); let region_scope_tree = &cx.tcx.region_scope_tree(def_id); - ExprUseVisitor::new(&mut delegate, cx.tcx, cx.param_env, region_scope_tree, cx.tables, None).walk_expr(body); + ExprUseVisitor::new(&mut delegate, cx.tcx, def_id, cx.param_env, region_scope_tree, cx.tables, None).walk_expr(body); delegate.mutation_span() } @@ -1769,7 +1769,7 @@ impl<'a, 'tcx> VarVisitor<'a, 'tcx> { } let res = self.cx.tables.qpath_res(seqpath, seqexpr.hir_id); match res { - Res::Local(hir_id) | Res::Upvar(hir_id, ..) => { + Res::Local(hir_id) => { let parent_id = self.cx.tcx.hir().get_parent_item(expr.hir_id); let parent_def_id = self.cx.tcx.hir().local_def_id_from_hir_id(parent_id); let extent = self.cx.tcx.region_scope_tree(parent_def_id).var_scope(hir_id.local_id); @@ -1829,24 +1829,13 @@ impl<'a, 'tcx> Visitor<'tcx> for VarVisitor<'a, 'tcx> { if let QPath::Resolved(None, ref path) = *qpath; if path.segments.len() == 1; then { - match self.cx.tables.qpath_res(qpath, expr.hir_id) { - Res::Upvar(local_id, ..) => { - if local_id == self.var { - // we are not indexing anything, record that - self.nonindex = true; - } - } - Res::Local(local_id) => - { - - if local_id == self.var { - self.nonindex = true; - } else { - // not the correct variable, but still a variable - self.referenced.insert(path.segments[0].ident.name); - } + if let Res::Local(local_id) = self.cx.tables.qpath_res(qpath, expr.hir_id) { + if local_id == self.var { + self.nonindex = true; + } else { + // not the correct variable, but still a variable + self.referenced.insert(path.segments[0].ident.name); } - _ => {} } } } @@ -2378,7 +2367,7 @@ impl<'a, 'tcx> VarCollectorVisitor<'a, 'tcx> { let res = self.cx.tables.qpath_res(qpath, ex.hir_id); then { match res { - Res::Local(node_id) | Res::Upvar(node_id, ..) => { + Res::Local(node_id) => { self.ids.insert(node_id); }, Res::Def(DefKind::Static, def_id) => { diff --git a/clippy_lints/src/misc.rs b/clippy_lints/src/misc.rs index 57751a03f5f0..74368446d991 100644 --- a/clippy_lints/src/misc.rs +++ b/clippy_lints/src/misc.rs @@ -600,9 +600,10 @@ fn in_attributes_expansion(expr: &Expr) -> bool { /// Tests whether `res` is a variable defined outside a macro. fn non_macro_local(cx: &LateContext<'_, '_>, res: def::Res) -> bool { - match res { - def::Res::Local(id) | def::Res::Upvar(id, ..) => !in_macro_or_desugar(cx.tcx.hir().span_by_hir_id(id)), - _ => false, + if let def::Res::Local(id) = res { + !in_macro_or_desugar(cx.tcx.hir().span_by_hir_id(id)) + } else { + false } } diff --git a/clippy_lints/src/needless_pass_by_value.rs b/clippy_lints/src/needless_pass_by_value.rs index 0741fd52f4f8..6aa941304a91 100644 --- a/clippy_lints/src/needless_pass_by_value.rs +++ b/clippy_lints/src/needless_pass_by_value.rs @@ -137,7 +137,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NeedlessPassByValue { } = { let mut ctx = MovedVariablesCtxt::new(cx); let region_scope_tree = &cx.tcx.region_scope_tree(fn_def_id); - euv::ExprUseVisitor::new(&mut ctx, cx.tcx, cx.param_env, region_scope_tree, cx.tables, None) + euv::ExprUseVisitor::new(&mut ctx, cx.tcx, fn_def_id, cx.param_env, region_scope_tree, cx.tables, None) .consume_body(body); ctx }; diff --git a/clippy_lints/src/utils/usage.rs b/clippy_lints/src/utils/usage.rs index 4e66da8b19f4..3b9cabcef813 100644 --- a/clippy_lints/src/utils/usage.rs +++ b/clippy_lints/src/utils/usage.rs @@ -16,7 +16,7 @@ pub fn mutated_variables<'a, 'tcx: 'a>(expr: &'tcx Expr, cx: &'a LateContext<'a, }; let def_id = def_id::DefId::local(expr.hir_id.owner); let region_scope_tree = &cx.tcx.region_scope_tree(def_id); - ExprUseVisitor::new(&mut delegate, cx.tcx, cx.param_env, region_scope_tree, cx.tables, None).walk_expr(expr); + ExprUseVisitor::new(&mut delegate, cx.tcx, def_id, cx.param_env, region_scope_tree, cx.tables, None).walk_expr(expr); if delegate.skip { return None; @@ -29,11 +29,11 @@ pub fn is_potentially_mutated<'a, 'tcx: 'a>( expr: &'tcx Expr, cx: &'a LateContext<'a, 'tcx>, ) -> bool { - let id = match variable.res { - Res::Local(id) | Res::Upvar(id, ..) => id, - _ => return true, - }; - mutated_variables(expr, cx).map_or(true, |mutated| mutated.contains(&id)) + if let Res::Local(id) = variable.res { + mutated_variables(expr, cx).map_or(true, |mutated| mutated.contains(&id)) + } else { + return true + } } struct MutVarsDelegate {