From 4f71ff3f847e7da299be5cc3ba00ebfda5899166 Mon Sep 17 00:00:00 2001 From: togami2864 Date: Mon, 15 Nov 2021 15:47:57 +0900 Subject: [PATCH] add test case for option_map_or_none --- tests/ui/option_map_or_none.fixed | 11 ++++++++--- tests/ui/option_map_or_none.rs | 9 +++++++-- tests/ui/option_map_or_none.stderr | 18 ++++++++++++------ 3 files changed, 27 insertions(+), 11 deletions(-) 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