diff options
Diffstat (limited to 'tests/ui/redundant_pattern_matching.fixed')
| -rw-r--r-- | tests/ui/redundant_pattern_matching.fixed | 99 |
1 files changed, 14 insertions, 85 deletions
diff --git a/tests/ui/redundant_pattern_matching.fixed b/tests/ui/redundant_pattern_matching.fixed index adbff8af8d9..17d908336d5 100644 --- a/tests/ui/redundant_pattern_matching.fixed +++ b/tests/ui/redundant_pattern_matching.fixed @@ -18,39 +18,14 @@ fn main() { 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); } @@ -63,48 +38,24 @@ fn main() { 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 opt = Some(false); - let x = if opt.is_some() { true } else { false }; - takes_bool(x); - issue5504(); - issue5697(); + issue6067(); - let _ = if gen_opt().is_some() { + let _ = if gen_res().is_ok() { 1 - } else if gen_opt().is_none() { - 2 - } else if gen_res().is_ok() { - 3 } else if gen_res().is_err() { - 4 + 2 } else { - 5 + 3 }; } -fn gen_opt() -> Option<()> { - None -} - fn gen_res() -> Result<(), ()> { Ok(()) } -fn takes_bool(_: bool) {} - -fn foo() {} - -fn bar() {} - macro_rules! m { () => { Some(42u32) @@ -128,41 +79,19 @@ fn issue5504() { while m!().is_some() {} } -// None of these should be linted because none of the suggested methods -// are `const fn` without toggling a feature. -const fn issue5697() { - if let Ok(_) = Ok::<i32, i32>(42) {} - - if let Err(_) = Err::<i32, i32>(42) {} - - if let Some(_) = Some(42) {} - - if let None = None::<()> {} - - while let Ok(_) = Ok::<i32, i32>(10) {} - - while let Err(_) = Ok::<i32, i32>(10) {} +// Methods that are unstable const should not be suggested within a const context, see issue #5697. +// However, in Rust 1.48.0 the methods `is_ok` and `is_err` of `Result` were stabilized as const, +// so the following should be linted. +const fn issue6067() { + if Ok::<i32, i32>(42).is_ok() {} - while let Some(_) = Some(42) {} + if Err::<i32, i32>(42).is_err() {} - while let None = None::<()> {} + while Ok::<i32, i32>(10).is_ok() {} - match Ok::<i32, i32>(42) { - Ok(_) => true, - Err(_) => false, - }; + while Ok::<i32, i32>(10).is_err() {} - match Err::<i32, i32>(42) { - Ok(_) => false, - Err(_) => true, - }; - match Some(42) { - Some(_) => true, - None => false, - }; + Ok::<i32, i32>(42).is_ok(); - match None::<()> { - Some(_) => false, - None => true, - }; + Err::<i32, i32>(42).is_err(); } |
