| #![warn(clippy::result_filter_map)] |
| #![allow(clippy::map_flatten, clippy::unnecessary_map_on_constructor)] |
| |
| fn odds_out(x: i32) -> Result<i32, ()> { |
| if x % 2 == 0 { Ok(x) } else { Err(()) } |
| } |
| |
| fn main() { |
| // Unlike the Option version, Result does not have a filter operation => we will check for iterators |
| // only |
| let _ = vec![Ok(1) as Result<i32, ()>] |
| .into_iter() |
| .filter(Result::is_ok) |
| //~^ ERROR: `filter` for `Ok` followed by `unwrap` |
| .map(Result::unwrap); |
| |
| let _ = vec![Ok(1) as Result<i32, ()>] |
| .into_iter() |
| .filter(|o| o.is_ok()) |
| //~^ ERROR: `filter` for `Ok` followed by `unwrap` |
| .map(|o| o.unwrap()); |
| |
| let _ = vec![1] |
| .into_iter() |
| .map(odds_out) |
| .filter(Result::is_ok) |
| //~^ ERROR: `filter` for `Ok` followed by `unwrap` |
| .map(Result::unwrap); |
| let _ = vec![1] |
| .into_iter() |
| .map(odds_out) |
| .filter(|o| o.is_ok()) |
| //~^ ERROR: `filter` for `Ok` followed by `unwrap` |
| .map(|o| o.unwrap()); |
| } |