X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=clippy_lints%2Fsrc%2Funused_label.rs;h=60acbc1469f900e78459ffc70821b712c9a69983;hb=e5a5b0a0774625eebbe7b29c67b49dc6431544d1;hp=73934adfb33fcd3c708f8168a21d7f32986855b9;hpb=b834dbb2d5924c947c3cbe47c863ea5b7470e567;p=rust.git diff --git a/clippy_lints/src/unused_label.rs b/clippy_lints/src/unused_label.rs index 73934adfb33..60acbc1469f 100644 --- a/clippy_lints/src/unused_label.rs +++ b/clippy_lints/src/unused_label.rs @@ -1,11 +1,12 @@ -use crate::utils::{in_macro, span_lint}; +use crate::utils::span_lint; +use rustc::declare_lint_pass; use rustc::hir; use rustc::hir::intravisit::{walk_expr, walk_fn, FnKind, NestedVisitorMap, Visitor}; use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass}; -use rustc::{declare_lint_pass, declare_tool_lint}; use rustc_data_structures::fx::FxHashMap; +use rustc_session::declare_tool_lint; use syntax::source_map::Span; -use syntax::symbol::LocalInternedString; +use syntax::symbol::Symbol; declare_clippy_lint! { /// **What it does:** Checks for unused labels. @@ -27,8 +28,8 @@ "unused labels" } -struct UnusedLabelVisitor<'a, 'tcx: 'a> { - labels: FxHashMap, +struct UnusedLabelVisitor<'a, 'tcx> { + labels: FxHashMap, cx: &'a LateContext<'a, 'tcx>, } @@ -44,7 +45,7 @@ fn check_fn( span: Span, fn_id: hir::HirId, ) { - if in_macro(span) { + if span.from_expansion() { return; } @@ -60,16 +61,16 @@ fn check_fn( } } -impl<'a, 'tcx: 'a> Visitor<'tcx> for UnusedLabelVisitor<'a, 'tcx> { +impl<'a, 'tcx> Visitor<'tcx> for UnusedLabelVisitor<'a, 'tcx> { fn visit_expr(&mut self, expr: &'tcx hir::Expr) { - match expr.node { + match expr.kind { hir::ExprKind::Break(destination, _) | hir::ExprKind::Continue(destination) => { if let Some(label) = destination.label { - self.labels.remove(&label.ident.as_str()); + self.labels.remove(&label.ident.name); } }, - hir::ExprKind::Loop(_, Some(label), _) | hir::ExprKind::While(_, _, Some(label)) => { - self.labels.insert(label.ident.as_str(), expr.span); + hir::ExprKind::Loop(_, Some(label), _) => { + self.labels.insert(label.ident.name, expr.span); }, _ => (), }