]> git.lizzy.rs Git - rust.git/blob - tests/target/expr.rs
Move Indent and Shape to shape.rs from lib.rs
[rust.git] / tests / target / expr.rs
1 // rustfmt-normalize_comments: true
2 // rustfmt-wrap_comments: true
3 // Test expressions
4
5 fn foo() -> bool {
6     let boxed: Box<i32> = box 5;
7     let referenced = &5;
8
9     let very_long_variable_name = (a + first + simple + test);
10     let very_long_variable_name =
11         (a + first + simple + test + AAAAAAAAAAAAA + BBBBBBBBBBBBBBBBB + b + c);
12
13     let is_internalxxxx =
14         self.codemap.span_to_filename(s) == self.codemap.span_to_filename(m.inner);
15
16     let some_val = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa * bbbb
17         / (bbbbbb - function_call(x, *very_long_pointer, y)) + 1000;
18
19     some_ridiculously_loooooooooooooooooooooong_function(
20         10000 * 30000000000 + 40000 / 1002200000000 - 50000 * sqrt(-1),
21         trivial_value,
22     );
23     (((((((((aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
24         + a
25         + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
26         + aaaaa)))))))));
27
28     {
29         for _ in 0..10 {}
30     }
31
32     {
33         {
34             {
35                 {}
36             }
37         }
38     }
39
40     if 1 + 2 > 0 {
41         let result = 5;
42         result
43     } else {
44         4
45     };
46
47     if let Some(x) = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa {
48         // Nothing
49     }
50
51     if let Some(x) =
52         (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
53     {}
54
55     if let (
56         some_very_large,
57         tuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuple,
58     ) = 1 + 2 + 3
59     {}
60
61     if let (
62         some_very_large,
63         tuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuple,
64     ) = 1111 + 2222
65     {}
66
67     if let (
68         some_very_large,
69         tuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuple,
70     ) = 1 + 2 + 3
71     {}
72
73     let test = if true { 5 } else { 3 };
74
75     if cond() {
76         something();
77     } else if different_cond() {
78         something_else();
79     } else {
80         // Check subformatting
81         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
82             + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
83     }
84 }
85
86 fn bar() {
87     let range =
88         (111111111 + 333333333333333333 + 1111 + 400000000000000000)..(2222 + 2333333333333333);
89
90     let another_range = 5..some_func(a, b /* comment */);
91
92     for _ in 1.. {
93         call_forever();
94     }
95
96     syntactically_correct(
97         loop {
98             sup('?');
99         },
100         if cond { 0 } else { 1 },
101     );
102
103     let third = ..10;
104     let infi_range = ..;
105     let foo = 1..;
106     let bar = 5;
107     let nonsense = (10..0)..(0..10);
108
109     loop {
110         if true {
111             break;
112         }
113     }
114
115     let x = (
116         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
117         a,
118     );
119 }
120
121 fn baz() {
122     unsafe /* {}{}{}{{{{}} */ {
123         let foo = 1u32;
124     }
125
126     unsafe /* very looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
127             * comment */ {
128     }
129
130     unsafe /* So this is a very long comment.
131             * Multi-line, too.
132             * Will it still format correctly? */ {
133     }
134
135     unsafe {
136         // Regular unsafe block
137     }
138
139     unsafe { foo() }
140
141     unsafe {
142         foo();
143     }
144 }
145
146 // Test some empty blocks.
147 fn qux() {
148     {}
149     // FIXME this one could be done better.
150     { /* a block with a comment */ }
151     {}
152     {
153         // A block with a comment.
154     }
155 }
156
157 fn issue227() {
158     {
159         let handler =
160             box DocumentProgressHandler::new(addr, 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 = [
174         0,
175         1,
176         2,
177         3,
178         4,
179         5,
180         6,
181         7,
182         8,
183         9,
184         0,
185         1,
186         2,
187         3,
188         4,
189         5,
190         6,
191         7,
192         8,
193         9,
194         0,
195         7,
196         8,
197         9,
198         0,
199         1,
200         2,
201         3,
202         4,
203         5,
204         6,
205         7,
206         8,
207         9,
208         0,
209     ];
210
211     let y = [/* comment */ 1, 2 /* post comment */, 3];
212
213     let xy = [
214         strukt {
215             test123: value_one_two_three_four,
216             turbo: coolio(),
217         },
218         // comment
219         1,
220     ];
221
222     let a = WeightedChoice::new(&mut [
223         Weighted {
224             weightweight: x,
225             item: 0,
226         },
227         Weighted {
228             weightweight: 1,
229             item: 1,
230         },
231         Weighted {
232             weightweight: x,
233             item: 2,
234         },
235         Weighted {
236             weightweight: 1,
237             item: 3,
238         },
239     ]);
240
241     let z = [
242         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
243         yyyyyyyyyyyyyyyyyyyyyyyyyyy,
244         zzzzzzzzzzzzzzzzzz,
245         q,
246     ];
247
248     [1 + 3, 4, 5, 6, 7, 7, fncall::<Vec<_>>(3 - 1)]
249 }
250
251 fn returns() {
252     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
253         && return;
254
255     return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
256         + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
257 }
258
259 fn addrof() {
260     &mut (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
261         + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb);
262     &(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
263         + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb);
264 }
265
266 fn casts() {
267     fn unpack(packed: u32) -> [u16; 2] {
268         [(packed >> 16) as u16, (packed >> 0) as u16]
269     }
270
271     let some_trait_xxx = xxxxxxxxxxx + xxxxxxxxxxxxx as SomeTraitXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
272     let slightly_longer_trait =
273         yyyyyyyyy + yyyyyyyyyyy as SomeTraitYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY;
274 }
275
276 fn indices() {
277     let x = (aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc)
278         [x + y + z];
279     let y = (aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc)
280         [xxxxx + yyyyy + zzzzz];
281     let z = xxxxxxxxxx
282         .x()
283         .y()
284         .zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz()[aaaaa];
285     let z = xxxxxxxxxx
286         .x()
287         .y()
288         .zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz()
289         [aaaaa];
290 }
291
292 fn repeats() {
293     let x = [aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc;
294         x + y + z];
295     let y = [aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc;
296         xxxxx + yyyyy + zzzzz];
297 }
298
299 fn blocks() {
300     if 1 + 1 == 2 {
301         println!("yay arithmetix!");
302     };
303 }
304
305 fn issue767() {
306     if false {
307         if false {
308         } else {
309             // A let binding here seems necessary to trigger it.
310             let _ = ();
311         }
312     } else if let false = false {
313     }
314 }
315
316 fn ranges() {
317     let x = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;
318     let y =
319         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;
320     let z = ...x;
321
322     // #1766
323     let x = [0. ..10.0];
324     let x = [0. ...10.0];
325
326     a...b
327
328     // the expr below won't compile for some reason...
329     // let a = 0 ... ;
330 }
331
332 fn if_else() {
333     let exact = diff / (if size == 0 { 1 } else { size });
334
335     let cx = tp1.x + any * radius * if anticlockwise { 1.0 } else { -1.0 };
336 }
337
338 fn complex_if_else() {
339     if let Some(x) = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx {
340     } else if let Some(x) = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx {
341         ha();
342     } else if xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxx {
343         yo();
344     } else if let Some(x) = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
345     {
346         ha();
347     } else if xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxx
348     {
349         yo();
350     }
351 }
352
353 fn issue1106() {
354     {
355         if let hir::ItemEnum(ref enum_def, ref generics) =
356             self.ast_map.expect_item(enum_node_id).node
357         {}
358     }
359
360     for entry in WalkDir::new(path)
361         .into_iter()
362         .filter_entry(|entry| exclusions.filter_entry(entry))
363     {}
364 }
365
366 fn issue1570() {
367     a_very_long_function_name({ some_func(1, { 1 }) })
368 }
369
370 fn issue1714() {
371     v = &mut { v }[mid..];
372     let (left, right) = { v }.split_at_mut(mid);
373 }
374
375 // Multi-lined index should be put on the next line if it fits in one line.
376 fn issue1749() {
377     {
378         {
379             {
380                 if self.shape[(r as f32 + self.x_offset) as usize]
381                     [(c as f32 + self.y_offset) as usize] != 0
382                 {
383                     // hello
384                 }
385             }
386         }
387     }
388 }
389
390 // #1172
391 fn newlines_between_list_like_expr() {
392     foo(
393         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
394         yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,
395         zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz,
396     );
397
398     vec![
399         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
400         yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,
401         zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz,
402     ];
403
404     match x {
405         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
406         yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy |
407         zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz => foo(a, b, c),
408         _ => bar(),
409     };
410 }