]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/bind_instead_of_map_multipart.fixed
New upstream version 1.63.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / bind_instead_of_map_multipart.fixed
1 // run-rustfix
2 #![deny(clippy::bind_instead_of_map)]
3 #![allow(clippy::blocks_in_if_conditions)]
4
5 pub fn main() {
6 let _ = Some("42").map(|s| if s.len() < 42 { 0 } else { s.len() });
7 let _ = Some("42").and_then(|s| if s.len() < 42 { None } else { Some(s.len()) });
8
9 let _ = Ok::<_, ()>("42").map(|s| if s.len() < 42 { 0 } else { s.len() });
10 let _ = Ok::<_, ()>("42").and_then(|s| if s.len() < 42 { Err(()) } else { Ok(s.len()) });
11
12 let _ = Err::<(), _>("42").map_err(|s| if s.len() < 42 { s.len() + 20 } else { s.len() });
13 let _ = Err::<(), _>("42").or_else(|s| if s.len() < 42 { Ok(()) } else { Err(s.len()) });
14
15 hard_example();
16 macro_example();
17 }
18
19 fn hard_example() {
20 Some("42").map(|s| {
21 if {
22 if s == "43" {
23 return 43;
24 }
25 s == "42"
26 } {
27 return 45;
28 }
29 match s.len() {
30 10 => 2,
31 20 => {
32 if foo() {
33 return {
34 if foo() {
35 return 20;
36 }
37 println!("foo");
38 3
39 };
40 }
41 20
42 },
43 40 => 30,
44 _ => 1,
45 }
46 });
47 }
48
49 fn foo() -> bool {
50 true
51 }
52
53 macro_rules! m {
54 () => {
55 Some(10)
56 };
57 }
58
59 fn macro_example() {
60 let _ = Some("").and_then(|s| if s.len() == 20 { m!() } else { Some(20) });
61 let _ = Some("").map(|s| if s.len() == 20 { m!() } else { Some(20) });
62 }