Crate unhygienic2
source · [−]Expand description
A dead simple macro to erase macro hygiene. This stringifies the input, then reparses it in the caller’s context. First unhygienic based on proc_macro_hack. Since 1.45 Rust have native support proc_macro. Therefore, proc_macro_hack isn’t neeeded.
Example
use unhygienic2::unhygienic;
macro_rules! declare {
($exp:expr) => {
unhygienic! {
fn func() -> i32 {
let a = 5;
$exp
}
}
}
}
declare!({ a + 1 });
fn main() {
assert_eq!(func(), 6);
}
Macros
Macro to erase macro hygiene.