diff --git a/clippy_lints/src/drop_ref.rs b/clippy_lints/src/drop_ref.rs index 69156f15f..268497f99 100644 --- a/clippy_lints/src/drop_ref.rs +++ b/clippy_lints/src/drop_ref.rs @@ -35,7 +35,7 @@ impl LateLintPass for DropRefPass { fn check_expr(&mut self, cx: &LateContext, expr: &Expr) { if let ExprCall(ref path, ref args) = expr.node { if let ExprPath(None, _) = path.node { - let def_id = cx.tcx.def_map.borrow()[&path.id].def_id(); + let def_id = cx.tcx.expect_def(path.id).def_id(); if match_def_path(cx, def_id, &paths::DROP) { if args.len() != 1 { return; diff --git a/clippy_lints/src/enum_glob_use.rs b/clippy_lints/src/enum_glob_use.rs index 37a89069d..5a4185ec6 100644 --- a/clippy_lints/src/enum_glob_use.rs +++ b/clippy_lints/src/enum_glob_use.rs @@ -44,14 +44,14 @@ impl EnumGlobUse { if let ItemUse(ref item_use) = item.node { if let ViewPath_::ViewPathGlob(_) = item_use.node { if let Some(def) = cx.tcx.def_map.borrow().get(&item.id) { - if let Some(node_id) = cx.tcx.map.as_local_node_id(def.def_id()) { + if let Some(node_id) = cx.tcx.map.as_local_node_id(def.full_def().def_id()) { if let Some(NodeItem(it)) = cx.tcx.map.find(node_id) { if let ItemEnum(..) = it.node { span_lint(cx, ENUM_GLOB_USE, item.span, "don't use glob imports for enum variants"); } } } else { - let child = cx.sess().cstore.item_children(def.def_id()); + let child = cx.sess().cstore.item_children(def.full_def().def_id()); if let Some(child) = child.first() { if let DefLike::DlDef(Def::Variant(..)) = child.def { span_lint(cx, ENUM_GLOB_USE, item.span, "don't use glob imports for enum variants"); diff --git a/clippy_lints/src/let_if_seq.rs b/clippy_lints/src/let_if_seq.rs index ac6bee00f..0ed324822 100644 --- a/clippy_lints/src/let_if_seq.rs +++ b/clippy_lints/src/let_if_seq.rs @@ -69,15 +69,15 @@ impl LateLintPass for LetIfSeq { let Some(def) = cx.tcx.def_map.borrow().get(&decl.pat.id), let hir::StmtExpr(ref if_, _) = expr.node, let hir::ExprIf(ref cond, ref then, ref else_) = if_.node, - !used_in_expr(cx, def.def_id(), cond), - let Some(value) = check_assign(cx, def.def_id(), then), - !used_in_expr(cx, def.def_id(), value), + !used_in_expr(cx, def.full_def().def_id(), cond), + let Some(value) = check_assign(cx, def.full_def().def_id(), then), + !used_in_expr(cx, def.full_def().def_id(), value), ], { let span = codemap::mk_sp(stmt.span.lo, if_.span.hi); let (default_multi_stmts, default) = if let Some(ref else_) = *else_ { if let hir::ExprBlock(ref else_) = else_.node { - if let Some(default) = check_assign(cx, def.def_id(), else_) { + if let Some(default) = check_assign(cx, def.full_def().def_id(), else_) { (else_.stmts.len() > 1, default) } else if let Some(ref default) = decl.init { (true, &**default) @@ -139,7 +139,7 @@ impl<'a, 'tcx, 'v> hir::intravisit::Visitor<'v> for UsedVisitor<'a, 'tcx> { if_let_chain! {[ let hir::ExprPath(None, _) = expr.node, let Some(def) = self.cx.tcx.def_map.borrow().get(&expr.id), - self.id == def.def_id(), + self.id == def.full_def().def_id(), ], { self.used = true; return; @@ -156,7 +156,7 @@ fn check_assign<'e>(cx: &LateContext, decl: hir::def_id::DefId, block: &'e hir:: let hir::ExprAssign(ref var, ref value) = expr.node, let hir::ExprPath(None, _) = var.node, let Some(def) = cx.tcx.def_map.borrow().get(&var.id), - decl == def.def_id(), + decl == def.full_def().def_id(), ], { let mut v = UsedVisitor { cx: cx, diff --git a/clippy_lints/src/mem_forget.rs b/clippy_lints/src/mem_forget.rs index 4dfb0fe88..79a714363 100644 --- a/clippy_lints/src/mem_forget.rs +++ b/clippy_lints/src/mem_forget.rs @@ -27,7 +27,7 @@ impl LateLintPass for MemForget { fn check_expr(&mut self, cx: &LateContext, e: &Expr) { if let ExprCall(ref path_expr, ref args) = e.node { if let ExprPath(None, _) = path_expr.node { - let def_id = cx.tcx.def_map.borrow()[&path_expr.id].def_id(); + let def_id = cx.tcx.expect_def(path_expr.id).def_id(); if match_def_path(cx, def_id, &paths::MEM_FORGET) { let forgot_ty = cx.tcx.expr_ty(&args[0]); diff --git a/clippy_lints/src/minmax.rs b/clippy_lints/src/minmax.rs index eaba19b08..a88324aaf 100644 --- a/clippy_lints/src/minmax.rs +++ b/clippy_lints/src/minmax.rs @@ -55,7 +55,7 @@ enum MinMax { fn min_max<'a>(cx: &LateContext, expr: &'a Expr) -> Option<(MinMax, Constant, &'a Expr)> { if let ExprCall(ref path, ref args) = expr.node { if let ExprPath(None, _) = path.node { - let def_id = cx.tcx.def_map.borrow()[&path.id].def_id(); + let def_id = cx.tcx.expect_def(path.id).def_id(); if match_def_path(cx, def_id, &paths::CMP_MIN) { fetch_const(args, MinMax::Min) diff --git a/clippy_lints/src/needless_bool.rs b/clippy_lints/src/needless_bool.rs index f95d6f5c9..5f9123667 100644 --- a/clippy_lints/src/needless_bool.rs +++ b/clippy_lints/src/needless_bool.rs @@ -155,8 +155,8 @@ enum Expression { fn fetch_bool_block(block: &Block) -> Expression { match (&*block.stmts, block.expr.as_ref()) { - ([], Some(e)) => fetch_bool_expr(&**e), - ([ref e], None) => { + (&[], Some(e)) => fetch_bool_expr(&**e), + (&[ref e], None) => { if let StmtSemi(ref e, _) = e.node { if let ExprRet(_) = e.node { fetch_bool_expr(&**e) diff --git a/clippy_lints/src/regex.rs b/clippy_lints/src/regex.rs index 8b84f94fa..c2c37fcf6 100644 --- a/clippy_lints/src/regex.rs +++ b/clippy_lints/src/regex.rs @@ -103,7 +103,7 @@ impl LateLintPass for RegexPass { args.len() == 1, let Some(def) = cx.tcx.def_map.borrow().get(&fun.id), ], { - let def_id = def.def_id(); + let def_id = def.full_def().def_id(); if match_def_path(cx, def_id, &paths::REGEX_NEW) || match_def_path(cx, def_id, &paths::REGEX_BUILDER_NEW) { check_regex(cx, &args[0], true); diff --git a/clippy_lints/src/transmute.rs b/clippy_lints/src/transmute.rs index 2217fd59b..5d3f27b07 100644 --- a/clippy_lints/src/transmute.rs +++ b/clippy_lints/src/transmute.rs @@ -60,7 +60,7 @@ impl LateLintPass for Transmute { fn check_expr(&mut self, cx: &LateContext, e: &Expr) { if let ExprCall(ref path_expr, ref args) = e.node { if let ExprPath(None, _) = path_expr.node { - let def_id = cx.tcx.def_map.borrow()[&path_expr.id].def_id(); + let def_id = cx.tcx.expect_def(path_expr.id).def_id(); if match_def_path(cx, def_id, &paths::TRANSMUTE) { let from_ty = cx.tcx.expr_ty(&args[0]); diff --git a/clippy_lints/src/types.rs b/clippy_lints/src/types.rs index 8a1a13187..83e2c1b54 100644 --- a/clippy_lints/src/types.rs +++ b/clippy_lints/src/types.rs @@ -56,7 +56,7 @@ impl LateLintPass for TypePass { } if let Some(did) = cx.tcx.def_map.borrow().get(&ast_ty.id) { if let def::Def::Struct(..) = did.full_def() { - if Some(did.def_id()) == cx.tcx.lang_items.owned_box() { + if Some(did.full_def().def_id()) == cx.tcx.lang_items.owned_box() { if_let_chain! {[ let TyPath(_, ref path) = ast_ty.node, let Some(ref last) = path.segments.last(), @@ -64,7 +64,7 @@ impl LateLintPass for TypePass { let Some(ref vec) = ag.types.get(0), let Some(did) = cx.tcx.def_map.borrow().get(&vec.id), let def::Def::Struct(..) = did.full_def(), - match_def_path(cx, did.def_id(), &paths::VEC), + match_def_path(cx, did.full_def().def_id(), &paths::VEC), ], { span_help_and_lint(cx, BOX_VEC, @@ -72,7 +72,7 @@ impl LateLintPass for TypePass { "you seem to be trying to use `Box>`. Consider using just `Vec`", "`Vec` is already on the heap, `Box>` makes an extra allocation."); }} - } else if match_def_path(cx, did.def_id(), &paths::LINKED_LIST) { + } else if match_def_path(cx, did.full_def().def_id(), &paths::LINKED_LIST) { span_help_and_lint(cx, LINKEDLIST, ast_ty.span,