]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/map_flatten.rs
New upstream version 1.61.0+dfsg1
[rustc.git] / src / tools / clippy / 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 }