about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLucas Lois <lucasloisp@gmail.com>2018-12-17 15:32:24 -0300
committerLucas Lois <lucasloisp@gmail.com>2018-12-17 15:32:24 -0300
commitde42dfbab7ce008c0a15cf4b8896f51fa90ea7ed (patch)
treea83ecc37bfce6e1565cf40621d7130d4a71f1a14
parentbc48890b47d13d1d820864e3c695ff6bf7038eac (diff)
downloadrust-de42dfbab7ce008c0a15cf4b8896f51fa90ea7ed.tar.gz
rust-de42dfbab7ce008c0a15cf4b8896f51fa90ea7ed.zip
Changes lint sugg to bitwise and operator `&`
-rw-r--r--clippy_lints/src/needless_bool.rs4
-rw-r--r--clippy_lints/src/utils/sugg.rs5
-rw-r--r--tests/ui/bool_comparison.stderr4
3 files changed, 9 insertions, 4 deletions
diff --git a/clippy_lints/src/needless_bool.rs b/clippy_lints/src/needless_bool.rs
index dbd61935cc4..1ad7f4c5540 100644
--- a/clippy_lints/src/needless_bool.rs
+++ b/clippy_lints/src/needless_bool.rs
@@ -174,7 +174,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for BoolComparison {
                     )),
                     ignore_case,
                     Some((
-                        |l: Sugg<'_>, r: Sugg<'_>| (!l).and(&r),
+                        |l: Sugg<'_>, r: Sugg<'_>| (!l).bit_and(&r),
                         "order comparisons between booleans can be simplified",
                     )),
                 ),
@@ -189,7 +189,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for BoolComparison {
                     ignore_case,
                     Some((|h| h, "greater than checks against false are unnecessary")),
                     Some((
-                        |l: Sugg<'_>, r: Sugg<'_>| l.and(&(!r)),
+                        |l: Sugg<'_>, r: Sugg<'_>| l.bit_and(&(!r)),
                         "order comparisons between booleans can be simplified",
                     )),
                 ),
diff --git a/clippy_lints/src/utils/sugg.rs b/clippy_lints/src/utils/sugg.rs
index c5f4a61fe8c..66f18b51f21 100644
--- a/clippy_lints/src/utils/sugg.rs
+++ b/clippy_lints/src/utils/sugg.rs
@@ -174,6 +174,11 @@ impl<'a> Sugg<'a> {
         make_binop(ast::BinOpKind::And, &self, rhs)
     }
 
+    /// Convenience method to create the `<lhs> & <rhs>` suggestion.
+    pub fn bit_and(self, rhs: &Self) -> Sugg<'static> {
+        make_binop(ast::BinOpKind::BitAnd, &self, rhs)
+    }
+
     /// Convenience method to create the `<lhs> as <rhs>` suggestion.
     pub fn as_ty<R: Display>(self, rhs: R) -> Sugg<'static> {
         make_assoc(AssocOp::As, &self, &Sugg::NonParen(rhs.to_string().into()))
diff --git a/tests/ui/bool_comparison.stderr b/tests/ui/bool_comparison.stderr
index d28052676eb..9a12a8f089a 100644
--- a/tests/ui/bool_comparison.stderr
+++ b/tests/ui/bool_comparison.stderr
@@ -76,13 +76,13 @@ error: order comparisons between booleans can be simplified
   --> $DIR/bool_comparison.rs:74:8
    |
 74 |     if x < y {
-   |        ^^^^^ help: try simplifying it as shown: `!x && y`
+   |        ^^^^^ help: try simplifying it as shown: `!x & y`
 
 error: order comparisons between booleans can be simplified
   --> $DIR/bool_comparison.rs:79:8
    |
 79 |     if x > y {
-   |        ^^^^^ help: try simplifying it as shown: `x && !y`
+   |        ^^^^^ help: try simplifying it as shown: `x & !y`
 
 error: aborting due to 14 previous errors