From 8a59f81180b0699be24ad5c4e40d3b66b3d78447 Mon Sep 17 00:00:00 2001 From: Philipp Hansch Date: Tue, 12 Mar 2019 08:01:21 +0100 Subject: [PATCH 1/3] Rename span_lint_node* functions to span_lint_hir* Because they now take a `hir_id` instead of a `node_id` argument. --- clippy_lints/src/new_without_default.rs | 6 +++--- clippy_lints/src/partialeq_ne_impl.rs | 4 ++-- clippy_lints/src/redundant_clone.rs | 8 ++++---- clippy_lints/src/utils/diagnostics.rs | 10 +++++----- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/clippy_lints/src/new_without_default.rs b/clippy_lints/src/new_without_default.rs index 701cfe205904..fde4081ae8f5 100644 --- a/clippy_lints/src/new_without_default.rs +++ b/clippy_lints/src/new_without_default.rs @@ -1,6 +1,6 @@ use crate::utils::paths; use crate::utils::sugg::DiagnosticBuilderExt; -use crate::utils::{get_trait_def_id, implements_trait, return_ty, same_tys, span_lint_node_and_then}; +use crate::utils::{get_trait_def_id, implements_trait, return_ty, same_tys, span_lint_hir_and_then}; use if_chain::if_chain; use rustc::hir; use rustc::hir::def_id::DefId; @@ -163,7 +163,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NewWithoutDefault { } if let Some(sp) = can_derive_default(self_ty, cx, default_trait_id) { - span_lint_node_and_then( + span_lint_hir_and_then( cx, NEW_WITHOUT_DEFAULT, id, @@ -182,7 +182,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NewWithoutDefault { ); }); } else { - span_lint_node_and_then( + span_lint_hir_and_then( cx, NEW_WITHOUT_DEFAULT, id, diff --git a/clippy_lints/src/partialeq_ne_impl.rs b/clippy_lints/src/partialeq_ne_impl.rs index 47495fde24a3..2f034b9f1aac 100644 --- a/clippy_lints/src/partialeq_ne_impl.rs +++ b/clippy_lints/src/partialeq_ne_impl.rs @@ -1,4 +1,4 @@ -use crate::utils::{is_automatically_derived, span_lint_node}; +use crate::utils::{is_automatically_derived, span_lint_hir}; use if_chain::if_chain; use rustc::hir::*; use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass}; @@ -51,7 +51,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Pass { then { for impl_item in impl_items { if impl_item.ident.name == "ne" { - span_lint_node( + span_lint_hir( cx, PARTIALEQ_NE_IMPL, impl_item.id.hir_id, diff --git a/clippy_lints/src/redundant_clone.rs b/clippy_lints/src/redundant_clone.rs index 3b74de5159f7..bb90bdf33d85 100644 --- a/clippy_lints/src/redundant_clone.rs +++ b/clippy_lints/src/redundant_clone.rs @@ -1,6 +1,6 @@ use crate::utils::{ - has_drop, in_macro, is_copy, match_def_path, match_type, paths, snippet_opt, span_lint_node, - span_lint_node_and_then, walk_ptrs_ty_depth, + has_drop, in_macro, is_copy, match_def_path, match_type, paths, snippet_opt, span_lint_hir, + span_lint_hir_and_then, walk_ptrs_ty_depth, }; use if_chain::if_chain; use matches::matches; @@ -199,7 +199,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for RedundantClone { span.lo() + BytePos(u32::try_from(dot).unwrap()) ); - span_lint_node_and_then(cx, REDUNDANT_CLONE, node, sugg_span, "redundant clone", |db| { + span_lint_hir_and_then(cx, REDUNDANT_CLONE, node, sugg_span, "redundant clone", |db| { db.span_suggestion( sugg_span, "remove this", @@ -212,7 +212,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for RedundantClone { ); }); } else { - span_lint_node(cx, REDUNDANT_CLONE, node, span, "redundant clone"); + span_lint_hir(cx, REDUNDANT_CLONE, node, span, "redundant clone"); } } } diff --git a/clippy_lints/src/utils/diagnostics.rs b/clippy_lints/src/utils/diagnostics.rs index 6d04ce70bc43..fa9a7dac9a0b 100644 --- a/clippy_lints/src/utils/diagnostics.rs +++ b/clippy_lints/src/utils/diagnostics.rs @@ -134,19 +134,19 @@ pub fn span_lint_and_then<'a, 'tcx: 'a, T: LintContext<'tcx>, F>( db.docs_link(lint); } -pub fn span_lint_node(cx: &LateContext<'_, '_>, lint: &'static Lint, node: HirId, sp: Span, msg: &str) { - DiagnosticWrapper(cx.tcx.struct_span_lint_hir(lint, node, sp, msg)).docs_link(lint); +pub fn span_lint_hir(cx: &LateContext<'_, '_>, lint: &'static Lint, hir_id: HirId, sp: Span, msg: &str) { + DiagnosticWrapper(cx.tcx.struct_span_lint_hir(lint, hir_id, sp, msg)).docs_link(lint); } -pub fn span_lint_node_and_then( +pub fn span_lint_hir_and_then( cx: &LateContext<'_, '_>, lint: &'static Lint, - node: HirId, + hir_id: HirId, sp: Span, msg: &str, f: impl FnOnce(&mut DiagnosticBuilder<'_>), ) { - let mut db = DiagnosticWrapper(cx.tcx.struct_span_lint_hir(lint, node, sp, msg)); + let mut db = DiagnosticWrapper(cx.tcx.struct_span_lint_hir(lint, hir_id, sp, msg)); f(&mut db.0); db.docs_link(lint); } From a4572581328852efaae37bd761c896fa154c048b Mon Sep 17 00:00:00 2001 From: Philipp Hansch Date: Tue, 12 Mar 2019 08:11:57 +0100 Subject: [PATCH 2/3] Use `HirId` instead of `NodeId` for lookup --- clippy_lints/src/escape.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/clippy_lints/src/escape.rs b/clippy_lints/src/escape.rs index 2c6bfae6efe1..75b822b69880 100644 --- a/clippy_lints/src/escape.rs +++ b/clippy_lints/src/escape.rs @@ -122,8 +122,7 @@ impl<'a, 'tcx> Delegate<'tcx> for EscapeDelegate<'a, 'tcx> { return; } if let Categorization::Rvalue(..) = cmt.cat { - let id = map.hir_to_node_id(cmt.hir_id); - if let Some(Node::Stmt(st)) = map.find(map.get_parent_node(id)) { + if let Some(Node::Stmt(st)) = map.find_by_hir_id(map.get_parent_node_by_hir_id(cmt.hir_id)) { if let StmtKind::Local(ref loc) = st.node { if let Some(ref ex) = loc.init { if let ExprKind::Box(..) = ex.node { From bf86c1b989f9dd79f8f58343ac5bbe8cdfd22236 Mon Sep 17 00:00:00 2001 From: Philipp Hansch Date: Wed, 13 Mar 2019 06:51:57 +0100 Subject: [PATCH 3/3] cargo fmt --- clippy_lints/src/redundant_clone.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clippy_lints/src/redundant_clone.rs b/clippy_lints/src/redundant_clone.rs index bb90bdf33d85..9a17e593fdfa 100644 --- a/clippy_lints/src/redundant_clone.rs +++ b/clippy_lints/src/redundant_clone.rs @@ -1,6 +1,6 @@ use crate::utils::{ - has_drop, in_macro, is_copy, match_def_path, match_type, paths, snippet_opt, span_lint_hir, - span_lint_hir_and_then, walk_ptrs_ty_depth, + has_drop, in_macro, is_copy, match_def_path, match_type, paths, snippet_opt, span_lint_hir, span_lint_hir_and_then, + walk_ptrs_ty_depth, }; use if_chain::if_chain; use matches::matches;