error[E0308]: mismatched types --> $DIR/issue-29084.rs:4:13 | LL | bar(&mut $d); | --- ^^^^^^^ expected `u8`, found `&mut u8` | | | arguments to this function are incorrect ... LL | foo!(0u8); | --------- in this macro invocation | note: function defined here --> $DIR/issue-29084.rs:3:12 | LL | fn bar(d: u8) { } | ^^^ ----- ... LL | foo!(0u8); | --------- in this macro invocation = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info) error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.