| // pp-exact |
| |
| #![feature(box_syntax)] |
| #![feature(rustc_attrs)] |
| #![feature(stmt_expr_attributes)] |
| |
| fn main() { } |
| |
| fn _0() { |
| |
| #[rustc_dummy] |
| foo(); |
| } |
| |
| fn _1() { |
| |
| #[rustc_dummy] |
| unsafe { |
| // code |
| } |
| } |
| |
| fn _2() { |
| |
| #[rustc_dummy] |
| { foo(); } |
| |
| { |
| #![rustc_dummy] |
| |
| foo() |
| } |
| } |
| |
| fn _3() { |
| |
| #[rustc_dummy] |
| match () { _ => { } } |
| } |
| |
| fn _4() { |
| |
| #[rustc_dummy] |
| match () { |
| #![rustc_dummy] |
| _ => (), |
| } |
| |
| let _ = |
| #[rustc_dummy] match () { |
| #![rustc_dummy] |
| () => (), |
| }; |
| } |
| |
| fn _5() { |
| |
| #[rustc_dummy] |
| let x = 1; |
| |
| let x = #[rustc_dummy] 1; |
| |
| let y = (); |
| let z = (); |
| |
| foo3(x, #[rustc_dummy] y, z); |
| |
| qux(3 + #[rustc_dummy] 2); |
| } |
| |
| fn _6() { |
| |
| #[rustc_dummy] |
| [#![rustc_dummy] 1, 2, 3]; |
| |
| let _ = #[rustc_dummy] [#![rustc_dummy] 1, 2, 3]; |
| |
| #[rustc_dummy] |
| [#![rustc_dummy] 1; 4]; |
| |
| let _ = #[rustc_dummy] [#![rustc_dummy] 1; 4]; |
| } |
| |
| struct Foo { |
| data: (), |
| } |
| |
| struct Bar(()); |
| |
| fn _7() { |
| |
| #[rustc_dummy] |
| Foo{#![rustc_dummy] data: (),}; |
| |
| let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (),}; |
| } |
| |
| fn _8() { |
| |
| #[rustc_dummy] |
| (#![rustc_dummy] ); |
| |
| #[rustc_dummy] |
| (#![rustc_dummy] 0); |
| |
| #[rustc_dummy] |
| (#![rustc_dummy] 0,); |
| |
| #[rustc_dummy] |
| (#![rustc_dummy] 0, 1); |
| } |
| |
| fn _9() { |
| macro_rules! stmt_mac { () => { let _ = () ; } } |
| |
| #[rustc_dummy] |
| stmt_mac!(); |
| |
| #[rustc_dummy] |
| stmt_mac! { }; |
| |
| #[rustc_dummy] |
| stmt_mac![]; |
| |
| #[rustc_dummy] |
| stmt_mac! { } |
| |
| let _ = (); |
| } |
| |
| macro_rules! expr_mac { () => { () } } |
| |
| fn _10() { |
| let _ = #[rustc_dummy] expr_mac!(); |
| let _ = #[rustc_dummy] expr_mac![]; |
| let _ = #[rustc_dummy] expr_mac! { }; |
| } |
| |
| fn _11() { |
| let _ = #[rustc_dummy] box 0; |
| let _: [(); 0] = #[rustc_dummy] [#![rustc_dummy] ]; |
| let _ = #[rustc_dummy] [#![rustc_dummy] 0, 0]; |
| let _ = #[rustc_dummy] [#![rustc_dummy] 0; 0]; |
| let _ = #[rustc_dummy] foo(); |
| let _ = #[rustc_dummy] 1i32.clone(); |
| let _ = #[rustc_dummy] (#![rustc_dummy] ); |
| let _ = #[rustc_dummy] (#![rustc_dummy] 0); |
| let _ = #[rustc_dummy] (#![rustc_dummy] 0,); |
| let _ = #[rustc_dummy] (#![rustc_dummy] 0, 0); |
| let _ = #[rustc_dummy] 0 + #[rustc_dummy] 0; |
| let _ = #[rustc_dummy] !0; |
| let _ = #[rustc_dummy] -0i32; |
| let _ = #[rustc_dummy] false; |
| let _ = #[rustc_dummy] 'c'; |
| let _ = #[rustc_dummy] 0; |
| let _ = #[rustc_dummy] 0 as usize; |
| let _ = |
| #[rustc_dummy] while false { |
| #![rustc_dummy] |
| }; |
| let _ = |
| #[rustc_dummy] while let None = Some(()) { |
| #![rustc_dummy] |
| }; |
| let _ = |
| #[rustc_dummy] for _ in 0..0 { |
| #![rustc_dummy] |
| }; |
| // FIXME: pp bug, two spaces after the loop |
| let _ = |
| #[rustc_dummy] loop { |
| #![rustc_dummy] |
| }; |
| let _ = |
| #[rustc_dummy] match false { |
| #![rustc_dummy] |
| _ => (), |
| }; |
| let _ = #[rustc_dummy] || #[rustc_dummy] (); |
| let _ = #[rustc_dummy] move || #[rustc_dummy] (); |
| let _ = |
| #[rustc_dummy] || |
| { |
| #![rustc_dummy] |
| #[rustc_dummy] |
| () |
| }; |
| let _ = |
| #[rustc_dummy] move || |
| { |
| #![rustc_dummy] |
| #[rustc_dummy] |
| () |
| }; |
| let _ = |
| #[rustc_dummy] { |
| #![rustc_dummy] |
| }; |
| let _ = |
| #[rustc_dummy] { |
| #![rustc_dummy] |
| let _ = (); |
| }; |
| let _ = |
| #[rustc_dummy] { |
| #![rustc_dummy] |
| let _ = (); |
| () |
| }; |
| let mut x = 0; |
| let _ = #[rustc_dummy] x = 15; |
| let _ = #[rustc_dummy] x += 15; |
| let s = Foo{data: (),}; |
| let _ = #[rustc_dummy] s.data; |
| let _ = (#[rustc_dummy] s).data; |
| let t = Bar(()); |
| let _ = #[rustc_dummy] t.0; |
| let _ = (#[rustc_dummy] t).0; |
| let v = vec!(0); |
| let _ = #[rustc_dummy] v[0]; |
| let _ = (#[rustc_dummy] v)[0]; |
| let _ = #[rustc_dummy] 0..#[rustc_dummy] 0; |
| let _ = #[rustc_dummy] 0..; |
| let _ = #[rustc_dummy] (0..0); |
| let _ = #[rustc_dummy] (0..); |
| let _ = #[rustc_dummy] (..0); |
| let _ = #[rustc_dummy] (..); |
| let _: fn(&u32) -> u32 = #[rustc_dummy] std::clone::Clone::clone; |
| let _ = #[rustc_dummy] &0; |
| let _ = #[rustc_dummy] &mut 0; |
| let _ = #[rustc_dummy] &#[rustc_dummy] 0; |
| let _ = #[rustc_dummy] &mut #[rustc_dummy] 0; |
| // FIXME: pp bug, extra space after keyword? |
| while false { let _ = #[rustc_dummy] continue ; } |
| while true { let _ = #[rustc_dummy] break ; } |
| || #[rustc_dummy] return; |
| let _ = #[rustc_dummy] expr_mac!(); |
| let _ = #[rustc_dummy] expr_mac![]; |
| let _ = #[rustc_dummy] expr_mac! { }; |
| let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (),}; |
| let _ = #[rustc_dummy] Foo{#![rustc_dummy] ..s}; |
| let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (), ..s}; |
| let _ = #[rustc_dummy] (#![rustc_dummy] 0); |
| } |
| |
| fn _12() { |
| #[rustc_dummy] |
| let _ = 0; |
| |
| #[rustc_dummy] |
| 0; |
| |
| #[rustc_dummy] |
| expr_mac!(); |
| |
| #[rustc_dummy] |
| { |
| #![rustc_dummy] |
| } |
| } |
| |
| fn foo() { } |
| fn foo3(_: i32, _: (), _: ()) { } |
| fn qux(_: i32) { } |