]> git.lizzy.rs Git - rust.git/blob - tests/target/chains.rs
Merge pull request #960 from rust-lang-nursery/big-closures
[rust.git] / tests / target / chains.rs
1 // Test chain formatting.
2
3 fn main() {
4     // Don't put chains on a single line if it wasn't so in source.
5     let a = b.c
6         .d
7         .1
8         .foo(|x| x + 1);
9
10     bbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccc
11         .ddddddddddddddddddddddddddd();
12
13     bbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccc
14         .ddddddddddddddddddddddddddd
15         .eeeeeeee();
16
17     // Test case where first chain element isn't a path, but is shorter than
18     // the size of a tab.
19     x().y(|| match cond() {
20         true => (),
21         false => (),
22     });
23
24     loong_func().quux(move || if true {
25         1
26     } else {
27         2
28     });
29
30     some_fuuuuuuuuunction().method_call_a(aaaaa, bbbbb, |c| {
31         let x = c;
32         x
33     });
34
35     some_fuuuuuuuuunction()
36         .method_call_a(aaaaa, bbbbb, |c| {
37             let x = c;
38             x
39         })
40         .method_call_b(aaaaa, bbbbb, |c| {
41             let x = c;
42             x
43         });
44
45     fffffffffffffffffffffffffffffffffff(a, {
46         SCRIPT_TASK_ROOT.with(|root| {
47             *root.borrow_mut() = Some(&script_task);
48         });
49     });
50
51     let suuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuum = xxxxxxx.map(|x| x + 5)
52         .map(|x| x / 2)
53         .fold(0, |acc, x| acc + x);
54
55     aaaaaaaaaaaaaaaa.map(|x| {
56             x += 1;
57             x
58         })
59         .filter(some_mod::some_filter)
60 }
61
62 fn floaters() {
63     let z = Foo {
64         field1: val1,
65         field2: val2,
66     };
67
68     let x = Foo {
69             field1: val1,
70             field2: val2,
71         }
72         .method_call()
73         .method_call();
74
75     let y = if cond {
76             val1
77         } else {
78             val2
79         }
80         .method_call();
81
82     {
83         match x {
84             PushParam => {
85                 // params are 1-indexed
86                 stack.push(mparams[match cur.to_digit(10) {
87                         Some(d) => d as usize - 1,
88                         None => return Err("bad param number".to_owned()),
89                     }]
90                     .clone());
91             }
92         }
93     }
94
95     if cond {
96             some();
97         } else {
98             none();
99         }
100         .bar()
101         .baz();
102
103     Foo { x: val }
104         .baz(|| {
105             // force multiline
106         })
107         .quux();
108
109     Foo {
110             y: i_am_multi_line,
111             z: ok,
112         }
113         .baz(|| {
114             // force multiline
115         })
116         .quux();
117
118     a +
119     match x {
120             true => "yay!",
121             false => "boo!",
122         }
123         .bar()
124 }
125
126 fn is_replaced_content() -> bool {
127     constellat.send(ConstellationMsg::ViewportConstrained(self.id, constraints))
128         .unwrap();
129 }
130
131 fn issue587() {
132     a.b::<()>(c);
133
134     std::mem::transmute(dl.symbol::<()>("init").unwrap())
135 }