]> git.lizzy.rs Git - rust.git/blob - tests/target/expr.rs
Update tests
[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, 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, 4, 5,
175         6, 7, 8, 9, 0,
176     ];
177
178     let y = [/* comment */ 1, 2 /* post comment */, 3];
179
180     let xy = [
181         strukt {
182             test123: value_one_two_three_four,
183             turbo: coolio(),
184         },
185         // comment
186         1,
187     ];
188
189     let a = WeightedChoice::new(&mut [
190         Weighted {
191             weightweight: x,
192             item: 0,
193         },
194         Weighted {
195             weightweight: 1,
196             item: 1,
197         },
198         Weighted {
199             weightweight: x,
200             item: 2,
201         },
202         Weighted {
203             weightweight: 1,
204             item: 3,
205         },
206     ]);
207
208     let z = [
209         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
210         yyyyyyyyyyyyyyyyyyyyyyyyyyy,
211         zzzzzzzzzzzzzzzzzz,
212         q,
213     ];
214
215     [1 + 3, 4, 5, 6, 7, 7, fncall::<Vec<_>>(3 - 1)]
216 }
217
218 fn returns() {
219     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
220         && return;
221
222     return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
223         + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
224 }
225
226 fn addrof() {
227     &mut (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
228         + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb);
229     &(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
230         + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb);
231 }
232
233 fn casts() {
234     fn unpack(packed: u32) -> [u16; 2] {
235         [(packed >> 16) as u16, (packed >> 0) as u16]
236     }
237
238     let some_trait_xxx = xxxxxxxxxxx + xxxxxxxxxxxxx as SomeTraitXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
239     let slightly_longer_trait =
240         yyyyyyyyy + yyyyyyyyyyy as SomeTraitYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY;
241 }
242
243 fn indices() {
244     let x = (aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc)
245         [x + y + z];
246     let y = (aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc)
247         [xxxxx + yyyyy + zzzzz];
248     let z = xxxxxxxxxx
249         .x()
250         .y()
251         .zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz()[aaaaa];
252     let z = xxxxxxxxxx
253         .x()
254         .y()
255         .zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz()
256         [aaaaa];
257 }
258
259 fn repeats() {
260     let x = [aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc;
261         x + y + z];
262     let y = [aaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccc;
263         xxxxx + yyyyy + zzzzz];
264 }
265
266 fn blocks() {
267     if 1 + 1 == 2 {
268         println!("yay arithmetix!");
269     };
270 }
271
272 fn issue767() {
273     if false {
274         if false {
275         } else {
276             // A let binding here seems necessary to trigger it.
277             let _ = ();
278         }
279     } else if let false = false {
280     }
281 }
282
283 fn ranges() {
284     let x = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;
285     let y =
286         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;
287     let z = ..=x;
288
289     // #1766
290     let x = [0. ..10.0];
291     let x = [0. ..=10.0];
292
293     a..=b
294
295     // the expr below won't compile because inclusive ranges need a defined end
296     // let a = 0 ..= ;
297 }
298
299 fn if_else() {
300     let exact = diff / (if size == 0 { 1 } else { size });
301
302     let cx = tp1.x + any * radius * if anticlockwise { 1.0 } else { -1.0 };
303 }
304
305 fn complex_if_else() {
306     if let Some(x) = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx {
307     } else if let Some(x) = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx {
308         ha();
309     } else if xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxx {
310         yo();
311     } else if let Some(x) = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
312     {
313         ha();
314     } else if xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + xxxxxxxxx
315     {
316         yo();
317     }
318 }
319
320 fn issue1106() {
321     {
322         if let hir::ItemEnum(ref enum_def, ref generics) =
323             self.ast_map.expect_item(enum_node_id).node
324         {}
325     }
326
327     for entry in WalkDir::new(path)
328         .into_iter()
329         .filter_entry(|entry| exclusions.filter_entry(entry))
330     {}
331 }
332
333 fn issue1570() {
334     a_very_long_function_name({ some_func(1, { 1 }) })
335 }
336
337 fn issue1714() {
338     v = &mut { v }[mid..];
339     let (left, right) = { v }.split_at_mut(mid);
340 }
341
342 // Multi-lined index should be put on the next line if it fits in one line.
343 fn issue1749() {
344     {
345         {
346             {
347                 if self.shape[(r as f32 + self.x_offset) as usize]
348                     [(c as f32 + self.y_offset) as usize] != 0
349                 {
350                     // hello
351                 }
352             }
353         }
354     }
355 }
356
357 // #1172
358 fn newlines_between_list_like_expr() {
359     foo(
360         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
361         yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,
362         zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz,
363     );
364
365     vec![
366         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
367         yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,
368         zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz,
369     ];
370
371     match x {
372         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
373         | yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
374         | zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz => foo(a, b, c),
375         _ => bar(),
376     };
377 }
378
379 fn issue2178() {
380     Ok(result
381         .iter()
382         .map(|item| ls_util::rls_to_location(item))
383         .collect())
384 }