Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 5d330d0

Browse files
Add new test for result_map_or_into_option extension
1 parent 2817c5f commit 5d330d0

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

tests/ui/result_map_or_into_option.fixed

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
fn main() {
44
let opt: Result<u32, &str> = Ok(1);
55
let _ = opt.ok();
6+
//~^ ERROR: called `map_or(None, Some)` on a `Result` value.
7+
let _ = opt.ok();
8+
//~^ ERROR: called `map_or_else(|_| None, Some)` on a `Result` value
9+
#[rustfmt::skip]
10+
let _ = opt.ok();
11+
//~^ ERROR: called `map_or_else(|_| None, Some)` on a `Result` value
612

713
let rewrap = |s: u32| -> Option<u32> { Some(s) };
814

@@ -14,4 +20,5 @@ fn main() {
1420
// return should not emit the lint
1521
let opt: Result<u32, &str> = Ok(1);
1622
_ = opt.map_or(None, |_x| Some(1));
23+
let _ = opt.map_or_else(|a| a.parse::<u32>().ok(), Some);
1724
}

tests/ui/result_map_or_into_option.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
fn main() {
44
let opt: Result<u32, &str> = Ok(1);
55
let _ = opt.map_or(None, Some);
6+
//~^ ERROR: called `map_or(None, Some)` on a `Result` value.
7+
let _ = opt.map_or_else(|_| None, Some);
8+
//~^ ERROR: called `map_or_else(|_| None, Some)` on a `Result` value
9+
#[rustfmt::skip]
10+
let _ = opt.map_or_else(|_| { None }, Some);
11+
//~^ ERROR: called `map_or_else(|_| None, Some)` on a `Result` value
612

713
let rewrap = |s: u32| -> Option<u32> { Some(s) };
814

@@ -14,4 +20,5 @@ fn main() {
1420
// return should not emit the lint
1521
let opt: Result<u32, &str> = Ok(1);
1622
_ = opt.map_or(None, |_x| Some(1));
23+
let _ = opt.map_or_else(|a| a.parse::<u32>().ok(), Some);
1724
}

tests/ui/result_map_or_into_option.stderr

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,17 @@ LL | let _ = opt.map_or(None, Some);
77
= note: `-D clippy::result-map-or-into-option` implied by `-D warnings`
88
= help: to override `-D warnings` add `#[allow(clippy::result_map_or_into_option)]`
99

10-
error: aborting due to previous error
10+
error: called `map_or_else(|_| None, Some)` on a `Result` value
11+
--> $DIR/result_map_or_into_option.rs:7:13
12+
|
13+
LL | let _ = opt.map_or_else(|_| None, Some);
14+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using `ok` instead: `opt.ok()`
15+
16+
error: called `map_or_else(|_| None, Some)` on a `Result` value
17+
--> $DIR/result_map_or_into_option.rs:10:13
18+
|
19+
LL | let _ = opt.map_or_else(|_| { None }, Some);
20+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using `ok` instead: `opt.ok()`
21+
22+
error: aborting due to 3 previous errors
1123

0 commit comments

Comments
 (0)