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