#![warn(clippy::map_flatten)] #![feature(result_flattening)] //@no-rustfix // issue #8506, multi-line #[rustfmt::skip] fn long_span() { let _: Option = Some(1) .map(|x| { //~^ ERROR: called `map(..).flatten()` on `Option` //~| NOTE: `-D clippy::map-flatten` implied by `-D warnings` if x <= 5 { Some(x) } else { None } }) .flatten(); let _: Result = Ok(1) .map(|x| { //~^ ERROR: called `map(..).flatten()` on `Result` if x == 1 { Ok(x) } else { Err(0) } }) .flatten(); let result: Result = Ok(2); fn do_something() { } let _: Result = result .map(|res| { //~^ ERROR: called `map(..).flatten()` on `Result` if res > 0 { do_something(); Ok(res) } else { Err(0) } }) .flatten(); let _: Vec<_> = vec![5_i8; 6] .into_iter() .map(|some_value| { //~^ ERROR: called `map(..).flatten()` on `Iterator` if some_value > 3 { Some(some_value) } else { None } }) .flatten() .collect(); } fn main() { long_span(); }