Skip to content

Commit

Permalink
Auto merge of #3977 - phansch:add_rustfix_bool_comparison, r=flip1995
Browse files Browse the repository at this point in the history
Add run-rustfix for bool_comparison lint

cc #3630
  • Loading branch information
bors committed Apr 17, 2019
2 parents 1936368 + 90ddf0d commit ea25f04
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 14 deletions.
113 changes: 113 additions & 0 deletions tests/ui/bool_comparison.fixed
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
// run-rustfix

#[warn(clippy::bool_comparison)]
fn main() {
let x = true;
if x {
"yes"
} else {
"no"
};
if !x {
"yes"
} else {
"no"
};
if x {
"yes"
} else {
"no"
};
if !x {
"yes"
} else {
"no"
};
if !x {
"yes"
} else {
"no"
};
if x {
"yes"
} else {
"no"
};
if !x {
"yes"
} else {
"no"
};
if x {
"yes"
} else {
"no"
};
if !x {
"yes"
} else {
"no"
};
if x {
"yes"
} else {
"no"
};
if x {
"yes"
} else {
"no"
};
if !x {
"yes"
} else {
"no"
};
let y = true;
if !x & y {
"yes"
} else {
"no"
};
if x & !y {
"yes"
} else {
"no"
};
}

#[allow(dead_code)]
fn issue3703() {
struct Foo;
impl PartialEq<bool> for Foo {
fn eq(&self, _: &bool) -> bool {
true
}
}
impl PartialEq<Foo> for bool {
fn eq(&self, _: &Foo) -> bool {
true
}
}
impl PartialOrd<bool> for Foo {
fn partial_cmp(&self, _: &bool) -> Option<std::cmp::Ordering> {
None
}
}
impl PartialOrd<Foo> for bool {
fn partial_cmp(&self, _: &Foo) -> Option<std::cmp::Ordering> {
None
}
}

if Foo == true {}
if true == Foo {}
if Foo != true {}
if true != Foo {}
if Foo == false {}
if false == Foo {}
if Foo != false {}
if false != Foo {}
if Foo < false {}
if false < Foo {}
}
2 changes: 2 additions & 0 deletions tests/ui/bool_comparison.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// run-rustfix

#[warn(clippy::bool_comparison)]
fn main() {
let x = true;
Expand Down
28 changes: 14 additions & 14 deletions tests/ui/bool_comparison.stderr
Original file line number Diff line number Diff line change
@@ -1,85 +1,85 @@
error: equality checks against true are unnecessary
--> $DIR/bool_comparison.rs:4:8
--> $DIR/bool_comparison.rs:6:8
|
LL | if x == true {
| ^^^^^^^^^ help: try simplifying it as shown: `x`
|
= note: `-D clippy::bool-comparison` implied by `-D warnings`

error: equality checks against false can be replaced by a negation
--> $DIR/bool_comparison.rs:9:8
--> $DIR/bool_comparison.rs:11:8
|
LL | if x == false {
| ^^^^^^^^^^ help: try simplifying it as shown: `!x`

error: equality checks against true are unnecessary
--> $DIR/bool_comparison.rs:14:8
--> $DIR/bool_comparison.rs:16:8
|
LL | if true == x {
| ^^^^^^^^^ help: try simplifying it as shown: `x`

error: equality checks against false can be replaced by a negation
--> $DIR/bool_comparison.rs:19:8
--> $DIR/bool_comparison.rs:21:8
|
LL | if false == x {
| ^^^^^^^^^^ help: try simplifying it as shown: `!x`

error: inequality checks against true can be replaced by a negation
--> $DIR/bool_comparison.rs:24:8
--> $DIR/bool_comparison.rs:26:8
|
LL | if x != true {
| ^^^^^^^^^ help: try simplifying it as shown: `!x`

error: inequality checks against false are unnecessary
--> $DIR/bool_comparison.rs:29:8
--> $DIR/bool_comparison.rs:31:8
|
LL | if x != false {
| ^^^^^^^^^^ help: try simplifying it as shown: `x`

error: inequality checks against true can be replaced by a negation
--> $DIR/bool_comparison.rs:34:8
--> $DIR/bool_comparison.rs:36:8
|
LL | if true != x {
| ^^^^^^^^^ help: try simplifying it as shown: `!x`

error: inequality checks against false are unnecessary
--> $DIR/bool_comparison.rs:39:8
--> $DIR/bool_comparison.rs:41:8
|
LL | if false != x {
| ^^^^^^^^^^ help: try simplifying it as shown: `x`

error: less than comparison against true can be replaced by a negation
--> $DIR/bool_comparison.rs:44:8
--> $DIR/bool_comparison.rs:46:8
|
LL | if x < true {
| ^^^^^^^^ help: try simplifying it as shown: `!x`

error: greater than checks against false are unnecessary
--> $DIR/bool_comparison.rs:49:8
--> $DIR/bool_comparison.rs:51:8
|
LL | if false < x {
| ^^^^^^^^^ help: try simplifying it as shown: `x`

error: greater than checks against false are unnecessary
--> $DIR/bool_comparison.rs:54:8
--> $DIR/bool_comparison.rs:56:8
|
LL | if x > false {
| ^^^^^^^^^ help: try simplifying it as shown: `x`

error: less than comparison against true can be replaced by a negation
--> $DIR/bool_comparison.rs:59:8
--> $DIR/bool_comparison.rs:61:8
|
LL | if true > x {
| ^^^^^^^^ help: try simplifying it as shown: `!x`

error: order comparisons between booleans can be simplified
--> $DIR/bool_comparison.rs:65:8
--> $DIR/bool_comparison.rs:67:8
|
LL | if x < y {
| ^^^^^ help: try simplifying it as shown: `!x & y`

error: order comparisons between booleans can be simplified
--> $DIR/bool_comparison.rs:70:8
--> $DIR/bool_comparison.rs:72:8
|
LL | if x > y {
| ^^^^^ help: try simplifying it as shown: `x & !y`
Expand Down

0 comments on commit ea25f04

Please sign in to comment.