This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +165
-0
lines changed Expand file tree Collapse file tree 3 files changed +165
-0
lines changed Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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 number Diff line number Diff line change 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+
You can’t perform that action at this time.
0 commit comments