]> git.lizzy.rs Git - rust.git/blobdiff - clippy_lints/src/neg_multiply.rs
Merge branch 'macro-use' into HEAD
[rust.git] / clippy_lints / src / neg_multiply.rs
index 2ac195f555b917675ff8c79993203bc97b277f81..96f2e58f3bed48fbbba398a436abde3e824f5d7e 100644 (file)
@@ -1,9 +1,11 @@
 use rustc::hir::*;
 use rustc::lint::*;
+use rustc::{declare_lint, lint_array};
+use if_chain::if_chain;
 use syntax::codemap::{Span, Spanned};
 
-use consts::{self, Constant};
-use utils::span_lint;
+use crate::consts::{self, Constant};
+use crate::utils::span_lint;
 
 /// **What it does:** Checks for multiplication by -1 as a form of negation.
 ///
@@ -15,9 +17,9 @@
 /// ```rust
 /// x * -1
 /// ```
-declare_lint! {
+declare_clippy_lint! {
     pub NEG_MULTIPLY,
-    Warn,
+    style,
     "multiplying integers with -1"
 }
 
@@ -33,11 +35,11 @@ fn get_lints(&self) -> LintArray {
 #[allow(match_same_arms)]
 impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NegMultiply {
     fn check_expr(&mut self, cx: &LateContext<'a, 'tcx>, e: &'tcx Expr) {
-        if let ExprBinary(Spanned { node: BiMul, .. }, ref l, ref r) = e.node {
+        if let ExprKind::Binary(Spanned { node: BinOpKind::Mul, .. }, ref l, ref r) = e.node {
             match (&l.node, &r.node) {
-                (&ExprUnary(..), &ExprUnary(..)) => (),
-                (&ExprUnary(UnNeg, ref lit), _) => check_mul(cx, e.span, lit, r),
-                (_, &ExprUnary(UnNeg, ref lit)) => check_mul(cx, e.span, lit, l),
+                (&ExprKind::Unary(..), &ExprKind::Unary(..)) => (),
+                (&ExprKind::Unary(UnNeg, ref lit), _) => check_mul(cx, e.span, lit, r),
+                (_, &ExprKind::Unary(UnNeg, ref lit)) => check_mul(cx, e.span, lit, l),
                 _ => (),
             }
         }
@@ -46,7 +48,7 @@ fn check_expr(&mut self, cx: &LateContext<'a, 'tcx>, e: &'tcx Expr) {
 
 fn check_mul(cx: &LateContext, span: Span, lit: &Expr, exp: &Expr) {
     if_chain! {
-        if let ExprLit(ref l) = lit.node;
+        if let ExprKind::Lit(ref l) = lit.node;
         if let Constant::Int(val) = consts::lit_to_constant(&l.node, cx.tables.expr_ty(lit));
         if val == 1;
         if cx.tables.expr_ty(exp).is_integral();