X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=clippy_lints%2Fsrc%2Funused_label.rs;h=5c5550ed30fb2e675a3059f6b1d13e941a11ea37;hb=48cb6e273ea49e85b6baa209e0123a2bbd6d15c2;hp=8a8afe8a377c88b43c29fcbc3547f5d3e3044301;hpb=4470d7a8caad553b7af262cae3e58e4f5fc34744;p=rust.git diff --git a/clippy_lints/src/unused_label.rs b/clippy_lints/src/unused_label.rs index 8a8afe8a377..5c5550ed30f 100644 --- a/clippy_lints/src/unused_label.rs +++ b/clippy_lints/src/unused_label.rs @@ -1,11 +1,11 @@ use rustc::lint::*; use rustc::hir; -use rustc::hir::intravisit::{FnKind, Visitor, walk_expr, walk_fn, NestedVisitorMap}; +use rustc::hir::intravisit::{walk_expr, walk_fn, FnKind, NestedVisitorMap, Visitor}; use std::collections::HashMap; use syntax::ast; use syntax::codemap::Span; -use syntax::symbol::InternedString; -use utils::{in_macro, span_lint}; +use syntax::symbol::LocalInternedString; +use crate::utils::{in_macro, span_lint}; /// **What it does:** Checks for unused labels. /// @@ -21,16 +21,16 @@ /// if i > 4 { continue } /// } /// ``` -declare_lint! { +declare_clippy_lint! { pub UNUSED_LABEL, - Warn, + complexity, "unused labels" } pub struct UnusedLabel; struct UnusedLabelVisitor<'a, 'tcx: 'a> { - labels: HashMap, + labels: HashMap, cx: &'a LateContext<'a, 'tcx>, } @@ -55,7 +55,7 @@ fn check_fn( } let mut v = UnusedLabelVisitor { - cx: cx, + cx, labels: HashMap::new(), }; walk_fn(&mut v, kind, decl, body.id(), span, fn_id); @@ -69,15 +69,11 @@ fn check_fn( impl<'a, 'tcx: 'a> Visitor<'tcx> for UnusedLabelVisitor<'a, 'tcx> { fn visit_expr(&mut self, expr: &'tcx hir::Expr) { match expr.node { - hir::ExprBreak(destination, _) | - hir::ExprAgain(destination) => { - if let Some(label) = destination.ident { - self.labels.remove(&label.node.name.as_str()); - } + hir::ExprBreak(destination, _) | hir::ExprContinue(destination) => if let Some(label) = destination.label { + self.labels.remove(&label.ident.as_str()); }, - hir::ExprLoop(_, Some(label), _) | - hir::ExprWhile(_, _, Some(label)) => { - self.labels.insert(label.node.as_str(), expr.span); + hir::ExprLoop(_, Some(label), _) | hir::ExprWhile(_, _, Some(label)) => { + self.labels.insert(label.ident.as_str(), expr.span); }, _ => (), }