1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#![feature(decl_macro)] struct X; macro_rules! define_f_legacy { () => { fn f() {} }} macro define_g_modern() { fn g() {} } impl X { fn f() {} //~ ERROR duplicate definitions with name `f` fn g() {} // OK } impl X { define_f_legacy!(); } impl X { define_g_modern!(); } fn main() {}