error[E0308]: mismatched types --> $DIR/impl-trait-in-macro.rs:9:9 | LL | ($($tr:tt)*) => { impl $($tr)* }; | ---- | | | expected type parameter | found type parameter ... LL | let mut a = x; | - expected due to this value LL | a = y; | ^ expected type parameter `impl Debug`, found a different type parameter `impl Debug` | = note: expected type parameter `impl Debug` (type parameter `impl Debug`) found type parameter `impl Debug` (type parameter `impl Debug`) = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0308`.