]> git.lizzy.rs Git - rust.git/blob - tests/target/expr.rs
Merge pull request #681 from rust-lang-nursery/comment-style
[rust.git] / tests / target / expr.rs
1 // rustfmt-wrap_comments: true
2 // Test expressions
3
4 fn foo() -> bool {
5     let boxed: Box<i32> = box 5;
6     let referenced = &5;
7
8     let very_long_variable_name = (a + first + simple + test);
9     let very_long_variable_name = (a + first + simple + test + AAAAAAAAAAAAA +
10                                    BBBBBBBBBBBBBBBBB + b + c);
11
12     let is_internalxxxx = self.codemap.span_to_filename(s) ==
13                           self.codemap.span_to_filename(m.inner);
14
15     let some_val = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa * bbbb /
16                    (bbbbbb - function_call(x, *very_long_pointer, y)) + 1000;
17
18     some_ridiculously_loooooooooooooooooooooong_function(10000 * 30000000000 +
19                                                          40000 / 1002200000000 -
20                                                          50000 * sqrt(-1),
21                                                          trivial_value);
22     (((((((((aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
23              a +
24              aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
25              aaaaa)))))))));
26
27     {
28         for _ in 0..10 {}
29     }
30
31     {
32         {
33             {
34                 {}
35             }
36         }
37     }
38
39     if 1 + 2 > 0 {
40         let result = 5;
41         result
42     } else {
43         4
44     };
45
46     if let Some(x) = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa {
47         // Nothing
48     }
49
50     if let Some(x) = (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
51                       aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
52
53     if let (some_very_large,
54             tuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuple) = 1 + 2 + 3 {
55     }
56
57     if let (some_very_large,
58             tuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuple) = 1111 +
59                                                                                          2222 {}
60
61     if let (some_very_large,
62             tuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuple) = 1 + 2 + 3 {
63     }
64
65     let test = if true {
66         5
67     } else {
68         3
69     };
70
71     if cond() {
72         something();
73     } else if different_cond() {
74         something_else();
75     } else {
76         // Check subformatting
77         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
78         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
79     }
80 }
81
82 fn bar() {
83     let range = (111111111 + 333333333333333333 + 1111 + 400000000000000000)..(2222 +
84                                                                                2333333333333333);
85
86     let another_range = 5..some_func(a, b /* comment */);
87
88     for _ in 1.. {
89         call_forever();
90     }
91
92     syntactically_correct(loop {
93                               sup('?');
94                           },
95                           if cond {
96                               0
97                           } else {
98                               1
99                           });
100
101     let third = ..10;
102     let infi_range = ..;
103     let foo = 1..;
104     let bar = 5;
105     let nonsense = (10..0)..(0..10);
106
107     loop {
108         if true {
109             break;
110         }
111     }
112
113     let x = (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
114              a);
115 }
116
117 fn baz() {
118     unsafe /* {}{}{}{{{{}} */ {
119         let foo = 1u32;
120     }
121
122     unsafe /* very looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
123             * comment */ {
124     }
125
126     unsafe /* So this is a very long comment.
127             * Multi-line, too.
128             * Will it still format correctly? */ {
129     }
130
131     unsafe {
132         // Regular unsafe block
133     }
134
135     unsafe { foo() }
136
137     unsafe {
138         foo();
139     }
140 }
141
142 // Test some empty blocks.
143 fn qux() {
144     {}
145     // FIXME this one could be done better.
146     {
147         // a block with a comment
148     }
149     {
150
151     }
152     {
153         // A block with a comment.
154     }
155 }
156
157 fn issue227() {
158     {
159         let handler = box DocumentProgressHandler::new(addr,
160                                                        DocumentProgressTask::DOMContentLoaded);
161     }
162 }
163
164 fn issue184(source: &str) {
165     for c in source.chars() {
166         if index < 'a' {
167             continue;
168         }
169     }
170 }
171
172 fn arrays() {
173     let x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 7, 8, 9, 0, 1, 2, 3,
174              4, 5, 6, 7, 8, 9, 0];
175
176     let y = [// comment
177              1,
178              2, // post comment
179              3];
180
181     let xy = [strukt {
182                   test123: value_one_two_three_four,
183                   turbo: coolio(),
184               },
185               // comment
186               1];
187
188     let a = WeightedChoice::new(&mut [Weighted {
189                                           weight: x,
190                                           item: 0,
191                                       },
192                                       Weighted {
193                                           weight: 1,
194                                           item: 1,
195                                       },
196                                       Weighted {
197                                           weight: x,
198                                           item: 2,
199                                       },
200                                       Weighted {
201                                           weight: 1,
202                                           item: 3,
203                                       }]);
204
205     let z = [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
206              yyyyyyyyyyyyyyyyyyyyyyyyyyy,
207              zzzzzzzzzzzzzzzzzz,
208              q];
209
210     [1 + 3, 4, 5, 6, 7, 7, fncall::<Vec<_>>(3 - 1)]
211 }
212
213 fn returns() {
214     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
215     return;
216
217     return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
218            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
219 }
220
221 fn addrof() {
222     &mut (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
223           bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb);
224     &(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
225       bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb);
226 }
227
228 fn casts() {
229     fn unpack(packed: u32) -> [u16; 2] {
230         [(packed >> 16) as u16, (packed >> 0) as u16]
231     }
232
233     let some_trait_xxx = xxxxxxxxxxx + xxxxxxxxxxxxx as SomeTraitXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
234     let slightly_longer_trait = yyyyyyyyy +
235                                 yyyyyyyyyyy as SomeTraitYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY;
236 }
237
238 fn indices() {
239     let x = (aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc)[x +
240                                                                                                 y +
241                                                                                                 z];
242     let y = (aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +
243              cccccccccccccccc)[xxxxx + yyyyy + zzzzz];
244 }
245
246 fn repeats() {
247     let x = [aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc; x +
248                                                                                                 y +
249                                                                                                 z];
250     let y = [aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +
251              cccccccccccccccc; xxxxx + yyyyy + zzzzz];
252 }
253
254 fn blocks() {
255     if 1 + 1 == 2 {
256         println!("yay arithmetix!");
257     };
258 }