rust/tests/ui/hygiene/macro-metavars-legacy.rs

30 lines
528 B
Rust

// Ensure macro metavariables are compared with legacy hygiene
#![feature(rustc_attrs)]
//@ run-pass
macro_rules! make_mac {
( $($dollar:tt $arg:ident),+ ) => {
macro_rules! mac {
( $($dollar $arg : ident),+ ) => {
$( $dollar $arg )-+
}
}
}
}
macro_rules! show_hygiene {
( $dollar:tt $arg:ident ) => {
make_mac!($dollar $arg, $dollar arg);
}
}
show_hygiene!( $arg );
fn main() {
let x = 5;
let y = 3;
assert_eq!(2, mac!(x, y));
}