macro_rules! m { ($p1: path) => { #[derive($p1)] struct U; } } macro_rules! foo { () => () } fn main() { foo::!(); //~ ERROR generic arguments in macro path foo::<>!(); //~ ERROR generic arguments in macro path m!(Default<>); //~ ERROR unexpected generic arguments in path }