rust/tests/ui/redundant_pattern_matching.fixed
Aleksei Latyshev 092c4595fe
fix redundant_pattern_matching lint
- now it handles `while let` case
- better suggestions in `if let` case
2020-04-17 21:51:07 +03:00

94 lines
1.6 KiB
Rust

// run-rustfix
#![warn(clippy::all)]
#![warn(clippy::redundant_pattern_matching)]
#![allow(clippy::unit_arg, unused_must_use, clippy::needless_bool)]
fn main() {
if Ok::<i32, i32>(42).is_ok() {}
if Err::<i32, i32>(42).is_err() {}
if None::<()>.is_none() {}
if Some(42).is_some() {}
if Some(42).is_some() {
foo();
} else {
bar();
}
while Some(42).is_some() {}
while Some(42).is_none() {}
while None::<()>.is_none() {}
while Ok::<i32, i32>(10).is_ok() {}
while Ok::<i32, i32>(10).is_err() {}
let mut v = vec![1, 2, 3];
while v.pop().is_some() {
foo();
}
if Ok::<i32, i32>(42).is_ok() {}
if Err::<i32, i32>(42).is_err() {}
if None::<i32>.is_none() {}
if Some(42).is_some() {}
if let Ok(x) = Ok::<i32, i32>(42) {
println!("{}", x);
}
Ok::<i32, i32>(42).is_ok();
Ok::<i32, i32>(42).is_err();
Err::<i32, i32>(42).is_err();
Err::<i32, i32>(42).is_ok();
Some(42).is_some();
None::<()>.is_none();
let _ = None::<()>.is_none();
let _ = if Ok::<usize, ()>(4).is_ok() { true } else { false };
let _ = does_something();
let _ = returns_unit();
let opt = Some(false);
let x = if opt.is_some() { true } else { false };
takes_bool(x);
}
fn takes_bool(_: bool) {}
fn foo() {}
fn bar() {}
fn does_something() -> bool {
if Ok::<i32, i32>(4).is_ok() {
true
} else {
false
}
}
fn returns_unit() {
if Ok::<i32, i32>(4).is_ok() {
true
} else {
false
};
}