]> git.lizzy.rs Git - rust.git/blob - tests/source/closure.rs
Add additional tests for closures
[rust.git] / tests / source / closure.rs
1 // Closures
2
3 fn main() {
4     let square = ( |i:  i32 | i  *  i );
5
6     let commented = |/* first */ a /*argument*/, /* second*/ b: WithType /* argument*/, /* ignored */ _ |
7         (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbb);
8
9     let commented = |/* first */ a /*argument*/, /* second*/ b: WithType /* argument*/, /* ignored */ _ |
10         (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb);
11
12     let block_body = move   |xxxxxxxxxxxxxxxxxxxxxxxxxxxxx,  ref  yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy| {
13             xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
14         };
15
16     let loooooooooooooong_name = |field| {
17              // TODO(#27): format comments.
18              if field.node.attrs.len() > 0 { field.node.attrs[0].span.lo
19              } else {
20                  field.span.lo
21              }};
22
23     let block_me = |field| if true_story() { 1 } else { 2 };
24
25     let unblock_me = |trivial| {
26                          closure()
27                      };
28
29     let empty = |arg|    {};
30
31     let test = |  | { do_something(); do_something_else(); };
32
33     |arg1, arg2, _, _, arg3, arg4| { let temp = arg4 + arg3;
34                                      arg2 * arg1 - temp }
35 }