]> git.lizzy.rs Git - rust.git/blob - src/test/pretty/stmt_expr_attributes.rs
pprust: Use `print_mac_common` for delimited token groups
[rust.git] / src / test / pretty / stmt_expr_attributes.rs
1 // pp-exact
2
3 #![feature(box_syntax)]
4 #![feature(rustc_attrs)]
5 #![feature(stmt_expr_attributes)]
6
7 fn main() { }
8
9 fn _0() {
10
11     #[rustc_dummy]
12     foo();
13 }
14
15 fn _1() {
16
17     #[rustc_dummy]
18     unsafe {
19         // code
20     }
21 }
22
23 fn _2() {
24
25     #[rustc_dummy]
26     { foo(); }
27
28     {
29         #![rustc_dummy]
30
31         foo()
32     }
33 }
34
35 fn _3() {
36
37     #[rustc_dummy]
38     match () { _ => { } }
39 }
40
41 fn _4() {
42
43     #[rustc_dummy]
44     match () {
45         #![rustc_dummy]
46         _ => (),
47     }
48
49     let _ =
50         #[rustc_dummy] match () {
51                            #![rustc_dummy]
52                            () => (),
53                        };
54 }
55
56 fn _5() {
57
58     #[rustc_dummy]
59     let x = 1;
60
61     let x = #[rustc_dummy] 1;
62
63     let y = ();
64     let z = ();
65
66     foo3(x, #[rustc_dummy] y, z);
67
68     qux(3 + #[rustc_dummy] 2);
69 }
70
71 fn _6() {
72
73     #[rustc_dummy]
74     [#![rustc_dummy] 1, 2, 3];
75
76     let _ = #[rustc_dummy] [#![rustc_dummy] 1, 2, 3];
77
78     #[rustc_dummy]
79     [#![rustc_dummy] 1; 4];
80
81     let _ = #[rustc_dummy] [#![rustc_dummy] 1; 4];
82 }
83
84 struct Foo {
85     data: (),
86 }
87
88 struct Bar(());
89
90 fn _7() {
91
92     #[rustc_dummy]
93     Foo{#![rustc_dummy] data: (),};
94
95     let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (),};
96 }
97
98 fn _8() {
99
100     #[rustc_dummy]
101     (#![rustc_dummy] );
102
103     #[rustc_dummy]
104     (#![rustc_dummy] 0);
105
106     #[rustc_dummy]
107     (#![rustc_dummy] 0,);
108
109     #[rustc_dummy]
110     (#![rustc_dummy] 0, 1);
111 }
112
113 fn _9() {
114     macro_rules!
115     stmt_mac
116     {() => {let _ = () ; } }
117
118     #[rustc_dummy]
119     stmt_mac!();
120
121     #[rustc_dummy]
122     stmt_mac!{ };
123
124     #[rustc_dummy]
125     stmt_mac![];
126
127     #[rustc_dummy]
128     stmt_mac!{ }
129
130     let _ = ();
131 }
132
133 macro_rules! expr_mac {() => {() } }
134
135 fn _10() {
136     let _ = #[rustc_dummy] expr_mac!();
137     let _ = #[rustc_dummy] expr_mac![];
138     let _ = #[rustc_dummy] expr_mac!{ };
139 }
140
141 fn _11() {
142     let _ = #[rustc_dummy] box 0;
143     let _: [(); 0] = #[rustc_dummy] [#![rustc_dummy] ];
144     let _ = #[rustc_dummy] [#![rustc_dummy] 0, 0];
145     let _ = #[rustc_dummy] [#![rustc_dummy] 0; 0];
146     let _ = #[rustc_dummy] foo();
147     let _ = #[rustc_dummy] 1i32.clone();
148     let _ = #[rustc_dummy] (#![rustc_dummy] );
149     let _ = #[rustc_dummy] (#![rustc_dummy] 0);
150     let _ = #[rustc_dummy] (#![rustc_dummy] 0,);
151     let _ = #[rustc_dummy] (#![rustc_dummy] 0, 0);
152     let _ = #[rustc_dummy] 0 + #[rustc_dummy] 0;
153     let _ = #[rustc_dummy] !0;
154     let _ = #[rustc_dummy] -0i32;
155     let _ = #[rustc_dummy] false;
156     let _ = #[rustc_dummy] 'c';
157     let _ = #[rustc_dummy] 0;
158     let _ = #[rustc_dummy] 0 as usize;
159     let _ =
160         #[rustc_dummy] while false {
161                            #![rustc_dummy]
162                        };
163     let _ =
164         #[rustc_dummy] while let None = Some(()) {
165                            #![rustc_dummy]
166                        };
167     let _ =
168         #[rustc_dummy] for _ in 0..0 {
169                            #![rustc_dummy]
170                        };
171     // FIXME: pp bug, two spaces after the loop
172     let _ =
173         #[rustc_dummy] loop  {
174                            #![rustc_dummy]
175                        };
176     let _ =
177         #[rustc_dummy] match false {
178                            #![rustc_dummy]
179                            _ => (),
180                        };
181     let _ = #[rustc_dummy] || #[rustc_dummy] ();
182     let _ = #[rustc_dummy] move || #[rustc_dummy] ();
183     let _ =
184         #[rustc_dummy] ||
185                            {
186                                #![rustc_dummy]
187                                #[rustc_dummy]
188                                ()
189                            };
190     let _ =
191         #[rustc_dummy] move ||
192                            {
193                                #![rustc_dummy]
194                                #[rustc_dummy]
195                                ()
196                            };
197     let _ =
198         #[rustc_dummy] {
199                            #![rustc_dummy]
200                        };
201     let _ =
202         #[rustc_dummy] {
203                            #![rustc_dummy]
204                            let _ = ();
205                        };
206     let _ =
207         #[rustc_dummy] {
208                            #![rustc_dummy]
209                            let _ = ();
210                            ()
211                        };
212     let mut x = 0;
213     let _ = #[rustc_dummy] x = 15;
214     let _ = #[rustc_dummy] x += 15;
215     let s = Foo{data: (),};
216     let _ = #[rustc_dummy] s.data;
217     let _ = (#[rustc_dummy] s).data;
218     let t = Bar(());
219     let _ = #[rustc_dummy] t.0;
220     let _ = (#[rustc_dummy] t).0;
221     let v = vec!(0);
222     let _ = #[rustc_dummy] v[0];
223     let _ = (#[rustc_dummy] v)[0];
224     let _ = #[rustc_dummy] 0..#[rustc_dummy] 0;
225     let _ = #[rustc_dummy] 0..;
226     let _ = #[rustc_dummy] (0..0);
227     let _ = #[rustc_dummy] (0..);
228     let _ = #[rustc_dummy] (..0);
229     let _ = #[rustc_dummy] (..);
230     let _: fn(&u32) -> u32 = #[rustc_dummy] std::clone::Clone::clone;
231     let _ = #[rustc_dummy] &0;
232     let _ = #[rustc_dummy] &mut 0;
233     let _ = #[rustc_dummy] &#[rustc_dummy] 0;
234     let _ = #[rustc_dummy] &mut #[rustc_dummy] 0;
235     // FIXME: pp bug, extra space after keyword?
236     while false { let _ = #[rustc_dummy] continue ; }
237     while true { let _ = #[rustc_dummy] break ; }
238     || #[rustc_dummy] return;
239     let _ = #[rustc_dummy] expr_mac!();
240     let _ = #[rustc_dummy] expr_mac![];
241     let _ = #[rustc_dummy] expr_mac!{ };
242     let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (),};
243     let _ = #[rustc_dummy] Foo{#![rustc_dummy] ..s};
244     let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (), ..s};
245     let _ = #[rustc_dummy] (#![rustc_dummy] 0);
246 }
247
248 fn _12() {
249     #[rustc_dummy]
250     let _ = 0;
251
252     #[rustc_dummy]
253     0;
254
255     #[rustc_dummy]
256     expr_mac!();
257
258     #[rustc_dummy]
259     {
260         #![rustc_dummy]
261     }
262 }
263
264 /////////////////
265
266 fn foo() { }
267 fn foo3(_: i32, _: (), _: ()) { }
268 fn qux(_: i32) { }