]> git.lizzy.rs Git - rust.git/blobdiff - clippy_lints/src/if_not_else.rs
rustup https://github.com/rust-lang/rust/pull/67455
[rust.git] / clippy_lints / src / if_not_else.rs
index 5ce29597cab77c5c978a507782f314a43c87aa94..7019cfa8cc8f120715eeb8060dbe223456ca5143 100644 (file)
@@ -1,8 +1,9 @@
 //! lint on if branches that could be swapped so no `!` operation is necessary
 //! on the condition
 
+use rustc::declare_lint_pass;
 use rustc::lint::{in_external_macro, EarlyContext, EarlyLintPass, LintArray, LintContext, LintPass};
-use rustc::{declare_tool_lint, lint_array};
+use rustc_session::declare_tool_lint;
 use syntax::ast::*;
 
 use crate::utils::span_help_and_lint;
@@ -17,6 +18,9 @@
     ///
     /// **Example:**
     /// ```rust
+    /// # let v: Vec<usize> = vec![];
+    /// # fn a() {}
+    /// # fn b() {}
     /// if !v.is_empty() {
     ///     a()
     /// } else {
@@ -27,6 +31,9 @@
     /// Could be written:
     ///
     /// ```rust
+    /// # let v: Vec<usize> = vec![];
+    /// # fn a() {}
+    /// # fn b() {}
     /// if v.is_empty() {
     ///     b()
     /// } else {
     "`if` branches that could be swapped so no negation operation is necessary on the condition"
 }
 
-pub struct IfNotElse;
-
-impl LintPass for IfNotElse {
-    fn get_lints(&self) -> LintArray {
-        lint_array!(IF_NOT_ELSE)
-    }
-
-    fn name(&self) -> &'static str {
-        "IfNotElse"
-    }
-}
+declare_lint_pass!(IfNotElse => [IF_NOT_ELSE]);
 
 impl EarlyLintPass for IfNotElse {
     fn check_expr(&mut self, cx: &EarlyContext<'_>, item: &Expr) {
         if in_external_macro(cx.sess(), item.span) {
             return;
         }
-        if let ExprKind::If(ref cond, _, Some(ref els)) = item.node {
-            if let ExprKind::Block(..) = els.node {
-                match cond.node {
+        if let ExprKind::If(ref cond, _, Some(ref els)) = item.kind {
+            if let ExprKind::Block(..) = els.kind {
+                match cond.kind {
                     ExprKind::Unary(UnOp::Not, _) => {
                         span_help_and_lint(
                             cx,