| // run-pass | |
| // ignore-pretty pretty-printing is unhygienic | |
| #![feature(decl_macro)] | |
| trait Tr { | |
| fn f(&self) -> &'static str { | |
| "This shouldn't happen" | |
| } | |
| } | |
| pub macro m($t:ty) { | |
| impl Tr for $t { | |
| fn f(&self) -> &'static str { | |
| "Run me" | |
| } | |
| } | |
| } | |
| struct S; | |
| m!(S); | |
| fn main() { | |
| assert_eq!(S.f(), "Run me"); | |
| } |