]> git.lizzy.rs Git - rust.git/blob - tests/target/closure.rs
382919ce4035fc28ac0e18645d99ffae7cee62d8
[rust.git] / tests / target / closure.rs
1 // Closures
2
3 fn main() {
4     let square = (|i: i32| i * i);
5
6     let commented = |// first
7                      a, // argument
8                      // second
9                      b: WithType, // argument
10                      // ignored
11                      _| {
12         (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)
13     };
14
15     let block_body = move |xxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
16                            ref yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy| {
17         xxxxxxxxxxxxxxxxxxxxxxxxxxxxx + yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
18     };
19
20     let loooooooooooooong_name = |field| {
21         // TODO(#27): format comments.
22         if field.node.attrs.len() > 0 {
23             field.node.attrs[0].span.lo
24         } else {
25             field.span.lo
26         }
27     };
28
29     let block_me = |field| {
30         if true_story() {
31             1
32         } else {
33             2
34         }
35     };
36
37     let unblock_me = |trivial| closure();
38
39     let empty = |arg| {};
40
41     let simple = |arg| {
42         // TODO(#27): comment formatting
43         foo(arg)
44     };
45
46     let test = || {
47         do_something();
48         do_something_else();
49     };
50
51     let arg_test = |big_argument_name, test123| {
52         looooooooooooooooooong_function_naaaaaaaaaaaaaaaaame()
53     };
54
55     let arg_test = |big_argument_name, test123| {
56         looooooooooooooooooong_function_naaaaaaaaaaaaaaaaame()
57     };
58
59     let simple_closure = move || -> () {};
60
61     let closure = |input: Ty| -> Option<String> { foo() };
62
63     let closure_with_return_type = |aaaaaaaaaaaaaaaaaaaaaaarg1,
64                                     aaaaaaaaaaaaaaaaaaaaaaarg2|
65                                     -> Strong {
66         "sup".to_owned()
67     };
68
69     |arg1, arg2, _, _, arg3, arg4| {
70         let temp = arg4 + arg3;
71         arg2 * arg1 - temp
72     }
73 }
74
75 fn issue311() {
76     let func = |x| println!("{}", x);
77
78     (func)(0.0);
79 }