File tree 3 files changed +165
-0
lines changed
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