]> git.lizzy.rs Git - rust.git/blob - tests/ui/map_flatten.rs
Auto merge of #8487 - dswij:8478, r=giraffate
[rust.git] / tests / ui / map_flatten.rs
1 #![warn(clippy::map_flatten)]
2 #![feature(result_flattening)]
3
4 // issue #8506, multi-line
5 #[rustfmt::skip]
6 fn long_span() {
7     let _: Option<i32> = Some(1)
8         .map(|x| {
9             if x <= 5 {
10                 Some(x)
11             } else {
12                 None
13             }
14         })
15         .flatten();
16
17     let _: Result<i32, i32> = Ok(1)
18         .map(|x| {
19             if x == 1 {
20                 Ok(x)
21             } else {
22                 Err(0)
23             }
24         })
25         .flatten();
26
27     let result: Result<i32, i32> = Ok(2);
28     fn do_something() { }
29     let _: Result<i32, i32> = result
30         .map(|res| {
31             if res > 0 {
32                 do_something();
33                 Ok(res)
34             } else {
35                 Err(0)
36             }
37         })
38         .flatten();
39         
40     let _: Vec<_> = vec![5_i8; 6]
41         .into_iter()
42         .map(|some_value| {
43             if some_value > 3 {
44                 Some(some_value)
45             } else {
46                 None
47             }
48         })
49         .flatten()
50         .collect();
51 }
52
53 fn main() {
54     long_span();
55 }