diff --git a/tests/ui/option_map_or_none.fixed b/tests/ui/option_map_or_none.fixed index 429ef00003f..77ad2d5285a 100644 --- a/tests/ui/option_map_or_none.fixed +++ b/tests/ui/option_map_or_none.fixed @@ -4,13 +4,18 @@ fn main() { let opt = Some(1); + let bar = |_| { + Some(1) + }; // Check `OPTION_MAP_OR_NONE`. // Single line case. - let _ = opt.map(|x| Some(x + 1)); + let _ :Option = opt.map(|x| x + 1); // Multi-line case. #[rustfmt::skip] - let _ = opt.map(|x| { - Some(x + 1) + let _ :Option = opt.map(|x| { + x + 1 }); + // function returning `Option` + let _ :Option = opt.and_then(bar); } diff --git a/tests/ui/option_map_or_none.rs b/tests/ui/option_map_or_none.rs index 629842419e5..789531b7215 100644 --- a/tests/ui/option_map_or_none.rs +++ b/tests/ui/option_map_or_none.rs @@ -4,13 +4,18 @@ fn main() { let opt = Some(1); + let bar = |_| { + Some(1) + }; // Check `OPTION_MAP_OR_NONE`. // Single line case. - let _ = opt.map_or(None, |x| Some(x + 1)); + let _ :Option = opt.map_or(None, |x| Some(x + 1)); // Multi-line case. #[rustfmt::skip] - let _ = opt.map_or(None, |x| { + let _ :Option = opt.map_or(None, |x| { Some(x + 1) }); + // function returning `Option` + let _ :Option = opt.map_or(None, bar); } diff --git a/tests/ui/option_map_or_none.stderr b/tests/ui/option_map_or_none.stderr index b011515934d..86ac93b9c80 100644 --- a/tests/ui/option_map_or_none.stderr +++ b/tests/ui/option_map_or_none.stderr @@ -1,15 +1,15 @@ error: called `map_or(None, ..)` on an `Option` value. This can be done more directly by calling `map(..)` instead --> $DIR/option_map_or_none.rs:10:13 | -LL | let _ = opt.map_or(None, |x| Some(x + 1)); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using `map` instead: `opt.map(|x| Some(x + 1))` +LL | let _ :Option = opt.map_or(None, |x| Some(x + 1)); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using `map` instead: `opt.map(|x| x + 1)` | = note: `-D clippy::option-map-or-none` implied by `-D warnings` error: called `map_or(None, ..)` on an `Option` value. This can be done more directly by calling `map(..)` instead --> $DIR/option_map_or_none.rs:13:13 | -LL | let _ = opt.map_or(None, |x| { +LL | let _ :Option = opt.map_or(None, |x| { | _____________^ LL | | Some(x + 1) LL | | }); @@ -17,10 +17,16 @@ LL | | }); | help: try using `map` instead | -LL ~ let _ = opt.map(|x| { -LL + Some(x + 1) +LL ~ let _ :Option = opt.map(|x| { +LL + x + 1 LL ~ }); | -error: aborting due to 2 previous errors +error: called `map_or(None, ..)` on an `Option` value. This can be done more directly by calling `map(..)` instead + --> $DIR/option_map_or_none.rs:20:26 + | +LL | let _ :Option = opt.map_or(None, bar); + | ^^^^^^^^^^^^^^^^^^^^^ help: try using `and_then` instead: `opt.and_then(bar)` + +error: aborting due to 3 previous errors