Skip to content

Commit 32bbeba

Browse files
Add ui test for unnecessary_result_map_or_else
1 parent 3b8f62f commit 32bbeba

3 files changed

+165
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#![warn(clippy::unnecessary_result_map_or_else)]
2+
#![allow(clippy::unnecessary_literal_unwrap, clippy::let_and_return, clippy::let_unit_value)]
3+
4+
fn main() {
5+
let x: Result<(), ()> = Ok(());
6+
x.unwrap_or_else(|err| err); //~ ERROR: unused "map closure" when calling
7+
8+
// Type ascribtion.
9+
let x: Result<(), ()> = Ok(());
10+
x.unwrap_or_else(|err: ()| err); //~ ERROR: unused "map closure" when calling
11+
12+
// Auto-deref.
13+
let y = String::new();
14+
let x: Result<&String, &String> = Ok(&y);
15+
let y: &str = x.unwrap_or_else(|err| err); //~ ERROR: unused "map closure" when calling
16+
17+
// Temporary variable.
18+
let x: Result<(), ()> = Ok(());
19+
x.unwrap_or_else(|err| err);
20+
21+
// Should not warn.
22+
let x: Result<usize, usize> = Ok(0);
23+
x.map_or_else(|err| err, |n| n + 1);
24+
25+
// Should not warn.
26+
let y = ();
27+
let x: Result<(), ()> = Ok(());
28+
x.map_or_else(|err| err, |_| y);
29+
30+
// Should not warn.
31+
let y = ();
32+
let x: Result<(), ()> = Ok(());
33+
x.map_or_else(
34+
|err| err,
35+
|_| {
36+
let tmp = y;
37+
tmp
38+
},
39+
);
40+
41+
// Should not warn.
42+
let x: Result<usize, usize> = Ok(1);
43+
x.map_or_else(
44+
|err| err,
45+
|n| {
46+
let tmp = n + 1;
47+
tmp
48+
},
49+
);
50+
51+
// Should not warn.
52+
let y = 0;
53+
let x: Result<usize, usize> = Ok(1);
54+
x.map_or_else(
55+
|err| err,
56+
|n| {
57+
let tmp = n;
58+
y
59+
},
60+
);
61+
}
+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#![warn(clippy::unnecessary_result_map_or_else)]
2+
#![allow(clippy::unnecessary_literal_unwrap, clippy::let_and_return, clippy::let_unit_value)]
3+
4+
fn main() {
5+
let x: Result<(), ()> = Ok(());
6+
x.map_or_else(|err| err, |n| n); //~ ERROR: unused "map closure" when calling
7+
8+
// Type ascribtion.
9+
let x: Result<(), ()> = Ok(());
10+
x.map_or_else(|err: ()| err, |n: ()| n); //~ ERROR: unused "map closure" when calling
11+
12+
// Auto-deref.
13+
let y = String::new();
14+
let x: Result<&String, &String> = Ok(&y);
15+
let y: &str = x.map_or_else(|err| err, |n| n); //~ ERROR: unused "map closure" when calling
16+
17+
// Temporary variable.
18+
let x: Result<(), ()> = Ok(());
19+
x.map_or_else(
20+
//~^ ERROR: unused "map closure" when calling
21+
|err| err,
22+
|n| {
23+
let tmp = n;
24+
let tmp2 = tmp;
25+
tmp2
26+
},
27+
);
28+
29+
// Should not warn.
30+
let x: Result<usize, usize> = Ok(0);
31+
x.map_or_else(|err| err, |n| n + 1);
32+
33+
// Should not warn.
34+
let y = ();
35+
let x: Result<(), ()> = Ok(());
36+
x.map_or_else(|err| err, |_| y);
37+
38+
// Should not warn.
39+
let y = ();
40+
let x: Result<(), ()> = Ok(());
41+
x.map_or_else(
42+
|err| err,
43+
|_| {
44+
let tmp = y;
45+
tmp
46+
},
47+
);
48+
49+
// Should not warn.
50+
let x: Result<usize, usize> = Ok(1);
51+
x.map_or_else(
52+
|err| err,
53+
|n| {
54+
let tmp = n + 1;
55+
tmp
56+
},
57+
);
58+
59+
// Should not warn.
60+
let y = 0;
61+
let x: Result<usize, usize> = Ok(1);
62+
x.map_or_else(
63+
|err| err,
64+
|n| {
65+
let tmp = n;
66+
y
67+
},
68+
);
69+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
error: unused "map closure" when calling `Result::map_or_else` value
2+
--> $DIR/unnecessary_result_map_or_else.rs:6:5
3+
|
4+
LL | x.map_or_else(|err| err, |n| n);
5+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `unwrap_or_else`: `x.unwrap_or_else(|err| err)`
6+
|
7+
= note: `-D clippy::unnecessary-result-map-or-else` implied by `-D warnings`
8+
= help: to override `-D warnings` add `#[allow(clippy::unnecessary_result_map_or_else)]`
9+
10+
error: unused "map closure" when calling `Result::map_or_else` value
11+
--> $DIR/unnecessary_result_map_or_else.rs:10:5
12+
|
13+
LL | x.map_or_else(|err: ()| err, |n: ()| n);
14+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `unwrap_or_else`: `x.unwrap_or_else(|err: ()| err)`
15+
16+
error: unused "map closure" when calling `Result::map_or_else` value
17+
--> $DIR/unnecessary_result_map_or_else.rs:15:19
18+
|
19+
LL | let y: &str = x.map_or_else(|err| err, |n| n);
20+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `unwrap_or_else`: `x.unwrap_or_else(|err| err)`
21+
22+
error: unused "map closure" when calling `Result::map_or_else` value
23+
--> $DIR/unnecessary_result_map_or_else.rs:19:5
24+
|
25+
LL | / x.map_or_else(
26+
LL | |
27+
LL | | |err| err,
28+
LL | | |n| {
29+
... |
30+
LL | | },
31+
LL | | );
32+
| |_____^ help: consider using `unwrap_or_else`: `x.unwrap_or_else(|err| err)`
33+
34+
error: aborting due to 4 previous errors
35+

0 commit comments

Comments
 (0)