3 #![feature(custom_attribute)]
4 #![feature(box_syntax)]
5 #![feature(stmt_expr_attributes)]
66 foo3(x, #[attr] y, z);
76 let _ = #[attr] [#![attr] 1, 2, 3];
81 let _ = #[attr] [#![attr] 1; 4];
93 Foo{#![attr] data: (),};
95 let _ = #[attr] Foo{#![attr] data: (),};
114 macro_rules! stmt_mac(( ) => { let _ = ( ) ; });
120 // pre existing pp bug: delimiter styles gets lost:
129 stmt_mac!{ } // pre-existing pp bug: compiler ICEs with a None unwrap
135 macro_rules! expr_mac(( ) => { ( ) });
139 let _ = #[attr] expr_mac!();
142 // pre existing pp bug: delimiter styles gets lost:
143 let _ = #[attr] expr_mac![];
144 let _ = #[attr] expr_mac!{};
149 let _ = #[attr] box 0;
150 let _: [(); 0] = #[attr] [#![attr] ];
151 let _ = #[attr] [#![attr] 0, 0];
152 let _ = #[attr] [#![attr] 0; 0];
153 let _ = #[attr] foo();
154 let _ = #[attr] 1i32.clone();
155 let _ = #[attr] (#![attr] );
156 let _ = #[attr] (#![attr] 0);
157 let _ = #[attr] (#![attr] 0,);
158 let _ = #[attr] (#![attr] 0, 0);
159 let _ = #[attr] 0 + #[attr] 0;
161 let _ = #[attr] -0i32;
162 let _ = #[attr] false;
165 let _ = #[attr] 0 as usize;
167 #[attr] while false {
171 #[attr] while let None = Some(()) {
175 #[attr] for _ in 0..0 {
178 // FIXME: pp bug, two spaces after the loop
184 #[attr] match false {
188 let _ = #[attr] || #[attr] ();
189 let _ = #[attr] move || #[attr] ();
220 let _ = #[attr] x = 15;
221 let _ = #[attr] x += 15;
222 let s = Foo{data: (),};
223 let _ = #[attr] s.data;
224 let _ = (#[attr] s).data;
227 let _ = (#[attr] t).0;
229 let _ = #[attr] v[0];
230 let _ = (#[attr] v)[0];
231 let _ = #[attr] 0..#[attr] 0;
233 let _ = #[attr] (0..0);
234 let _ = #[attr] (0..);
235 let _ = #[attr] (..0);
236 let _ = #[attr] (..);
237 let _: fn(&u32) -> u32 = #[attr] std::clone::Clone::clone;
239 let _ = #[attr] &mut 0;
240 let _ = #[attr] &#[attr] 0;
241 let _ = #[attr] &mut #[attr] 0;
242 // FIXME: pp bug, extra space after keyword?
243 while false { let _ = #[attr] continue ; }
244 while true { let _ = #[attr] break ; }
246 let _ = #[attr] expr_mac!();
247 /* FIXME: pp bug, losing delimiter styles
248 let _ = #[attr] expr_mac![];
249 let _ = #[attr] expr_mac!{};
251 let _ = #[attr] Foo{#![attr] data: (),};
252 let _ = #[attr] Foo{#![attr] ..s};
253 let _ = #[attr] Foo{#![attr] data: (), ..s};
254 let _ = #[attr] (#![attr] 0);
276 fn foo3(_: i32, _: (), _: ()) { }