]> git.lizzy.rs Git - rust.git/blob - tests/target/closure.rs
Be careful about where we change braces in closures
[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| if true_story() {
30         1
31     } else {
32         2
33     };
34
35     let unblock_me = |trivial| closure();
36
37     let empty = |arg| {};
38
39     let simple = |arg| {
40         // TODO(#27): comment formatting
41         foo(arg)
42     };
43
44     let test = || {
45         do_something();
46         do_something_else();
47     };
48
49     let arg_test = |big_argument_name, test123| {
50         looooooooooooooooooong_function_naaaaaaaaaaaaaaaaame()
51     };
52
53     let arg_test = |big_argument_name, test123| {
54         looooooooooooooooooong_function_naaaaaaaaaaaaaaaaame()
55     };
56
57     let simple_closure = move || -> () {};
58
59     let closure = |input: Ty| -> Option<String> { foo() };
60
61     let closure_with_return_type = |aaaaaaaaaaaaaaaaaaaaaaarg1,
62                                     aaaaaaaaaaaaaaaaaaaaaaarg2|
63                                     -> Strong {
64         "sup".to_owned()
65     };
66
67     |arg1, arg2, _, _, arg3, arg4| {
68         let temp = arg4 + arg3;
69         arg2 * arg1 - temp
70     }
71 }
72
73 fn issue311() {
74     let func = |x| println!("{}", x);
75
76     (func)(0.0);
77 }
78
79 fn issue863() {
80     let closure = |x| match x {
81         0 => true,
82         _ => false,
83     } == true;
84 }