//@ run-pass #![feature(decl_macro)] macro_rules! r#struct { ($r#struct:expr) => { $r#struct } } macro_rules! old_macro { ($a:expr) => {$a} } macro r#decl_macro($r#fn:expr) { $r#fn } macro passthrough($id:ident) { $id } macro_rules! test_pat_match { (a) => { 6 }; (r#a) => { 7 }; } pub fn main() { r#println!("{struct}", r#struct = 1); assert_eq!(2, r#struct!(2)); assert_eq!(3, r#old_macro!(3)); assert_eq!(4, decl_macro!(4)); let r#match = 5; assert_eq!(5, passthrough!(r#match)); assert_eq!("r#struct", stringify!(r#struct)); assert_eq!(6, test_pat_match!(a)); assert_eq!(7, test_pat_match!(r#a)); }