]> git.lizzy.rs Git - rust.git/blob - tests/ui/bind_instead_of_map_multipart.rs
Move MSRV tests into the lint specific test files
[rust.git] / tests / ui / bind_instead_of_map_multipart.rs
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").and_then(|s| if s.len() < 42 { Some(0) } else { Some(s.len()) });
7     let _ = Some("42").and_then(|s| if s.len() < 42 { None } else { Some(s.len()) });
8
9     let _ = Ok::<_, ()>("42").and_then(|s| if s.len() < 42 { Ok(0) } else { Ok(s.len()) });
10     let _ = Ok::<_, ()>("42").and_then(|s| if s.len() < 42 { Err(()) } else { Ok(s.len()) });
11
12     let _ = Err::<(), _>("42").or_else(|s| if s.len() < 42 { Err(s.len() + 20) } else { Err(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").and_then(|s| {
21         if {
22             if s == "43" {
23                 return Some(43);
24             }
25             s == "42"
26         } {
27             return Some(45);
28         }
29         match s.len() {
30             10 => Some(2),
31             20 => {
32                 if foo() {
33                     return {
34                         if foo() {
35                             return Some(20);
36                         }
37                         println!("foo");
38                         Some(3)
39                     };
40                 }
41                 Some(20)
42             },
43             40 => Some(30),
44             _ => Some(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("").and_then(|s| if s.len() == 20 { Some(m!()) } else { Some(Some(20)) });
62 }