mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-23 13:13:34 +00:00
Add ui test to ensure that if 0
is returned from both if
and else
, it will not break clippy
This commit is contained in:
parent
2622a87587
commit
27c6343365
5 changed files with 29 additions and 10 deletions
|
@ -184,18 +184,18 @@ fn main() {
|
||||||
let mut m = Mock;
|
let mut m = Mock;
|
||||||
let mut u_32 = 3000;
|
let mut u_32 = 3000;
|
||||||
let a = 200;
|
let a = 200;
|
||||||
let mut _b = 8;
|
let mut b = 8;
|
||||||
|
|
||||||
if m != 0 {
|
if m != 0 {
|
||||||
m -= 1;
|
m -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if a > 0 {
|
if a > 0 {
|
||||||
_b -= 1;
|
b -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if 0 > a {
|
if 0 > a {
|
||||||
_b -= 1;
|
b -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if u_32 > 0 {
|
if u_32 > 0 {
|
||||||
|
@ -214,4 +214,11 @@ fn main() {
|
||||||
} else if u_32 > 0 {
|
} else if u_32 > 0 {
|
||||||
u_32 -= 1;
|
u_32 -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let result = if a < b {
|
||||||
|
println!("we shouldn't remove this");
|
||||||
|
0
|
||||||
|
} else {
|
||||||
|
a - b
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,18 +230,18 @@ fn main() {
|
||||||
let mut m = Mock;
|
let mut m = Mock;
|
||||||
let mut u_32 = 3000;
|
let mut u_32 = 3000;
|
||||||
let a = 200;
|
let a = 200;
|
||||||
let mut _b = 8;
|
let mut b = 8;
|
||||||
|
|
||||||
if m != 0 {
|
if m != 0 {
|
||||||
m -= 1;
|
m -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if a > 0 {
|
if a > 0 {
|
||||||
_b -= 1;
|
b -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if 0 > a {
|
if 0 > a {
|
||||||
_b -= 1;
|
b -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if u_32 > 0 {
|
if u_32 > 0 {
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
#![warn(clippy::implicit_saturating_sub)]
|
#![warn(clippy::implicit_saturating_sub)]
|
||||||
|
#![allow(clippy::if_same_then_else)]
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let a = 12u32;
|
let a = 12u32;
|
||||||
let b = 13u32;
|
let b = 13u32;
|
||||||
|
let c = 8u32;
|
||||||
|
|
||||||
let result = a.saturating_sub(b);
|
let result = a.saturating_sub(b);
|
||||||
//~^ ERROR: manual arithmetic check found
|
//~^ ERROR: manual arithmetic check found
|
||||||
|
@ -13,4 +15,10 @@ fn main() {
|
||||||
//~^ ERROR: manual arithmetic check found
|
//~^ ERROR: manual arithmetic check found
|
||||||
let result = a.saturating_sub(b);
|
let result = a.saturating_sub(b);
|
||||||
//~^ ERROR: manual arithmetic check found
|
//~^ ERROR: manual arithmetic check found
|
||||||
|
|
||||||
|
// Should not warn!
|
||||||
|
let result = if a > b { a - b } else { a - c };
|
||||||
|
|
||||||
|
// Just to check it won't break clippy.
|
||||||
|
let result = if b > a { 0 } else { 0 };
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#![warn(clippy::implicit_saturating_sub)]
|
#![warn(clippy::implicit_saturating_sub)]
|
||||||
|
#![allow(clippy::if_same_then_else)]
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let a = 12u32;
|
let a = 12u32;
|
||||||
|
@ -17,4 +18,7 @@ fn main() {
|
||||||
|
|
||||||
// Should not warn!
|
// Should not warn!
|
||||||
let result = if a > b { a - b } else { a - c };
|
let result = if a > b { a - b } else { a - c };
|
||||||
|
|
||||||
|
// Just to check it won't break clippy.
|
||||||
|
let result = if b > a { 0 } else { 0 };
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error: manual arithmetic check found
|
error: manual arithmetic check found
|
||||||
--> tests/ui/manual_arithmetic_check.rs:7:18
|
--> tests/ui/manual_arithmetic_check.rs:9:18
|
||||||
|
|
|
|
||||||
LL | let result = if a > b { a - b } else { 0 };
|
LL | let result = if a > b { a - b } else { 0 };
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `a.saturating_sub(b)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `a.saturating_sub(b)`
|
||||||
|
@ -8,19 +8,19 @@ LL | let result = if a > b { a - b } else { 0 };
|
||||||
= help: to override `-D warnings` add `#[allow(clippy::implicit_saturating_sub)]`
|
= help: to override `-D warnings` add `#[allow(clippy::implicit_saturating_sub)]`
|
||||||
|
|
||||||
error: manual arithmetic check found
|
error: manual arithmetic check found
|
||||||
--> tests/ui/manual_arithmetic_check.rs:9:18
|
--> tests/ui/manual_arithmetic_check.rs:11:18
|
||||||
|
|
|
|
||||||
LL | let result = if b < a { a - b } else { 0 };
|
LL | let result = if b < a { a - b } else { 0 };
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `a.saturating_sub(b)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `a.saturating_sub(b)`
|
||||||
|
|
||||||
error: manual arithmetic check found
|
error: manual arithmetic check found
|
||||||
--> tests/ui/manual_arithmetic_check.rs:12:18
|
--> tests/ui/manual_arithmetic_check.rs:14:18
|
||||||
|
|
|
|
||||||
LL | let result = if a < b { 0 } else { a - b };
|
LL | let result = if a < b { 0 } else { a - b };
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `a.saturating_sub(b)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `a.saturating_sub(b)`
|
||||||
|
|
||||||
error: manual arithmetic check found
|
error: manual arithmetic check found
|
||||||
--> tests/ui/manual_arithmetic_check.rs:14:18
|
--> tests/ui/manual_arithmetic_check.rs:16:18
|
||||||
|
|
|
|
||||||
LL | let result = if b > a { 0 } else { a - b };
|
LL | let result = if b > a { 0 } else { a - b };
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `a.saturating_sub(b)`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `a.saturating_sub(b)`
|
||||||
|
|
Loading…
Reference in a new issue