Uses old Rust 2015
|0.1.7||Jan 13, 2021|
|0.1.6||Jun 14, 2020|
|0.1.4||Mar 17, 2020|
|0.1.3||Mar 6, 2019|
|0.1.1||Nov 21, 2018|
#1989 in Procedural macros
95,417 downloads per month
Used in 94 crates (8 directly)
Support for nested invocations of proc-macro-hack expression macros.
By default, macros defined through proc-macro-hack do not support nested invocations, i.e. the code emitted by a proc-macro-hack macro invocation cannot contain recursive calls to the same proc-macro-hack macro nor calls to any other proc-macro-hack macros.
This crate provides opt-in support for such nested invocations.
To make a macro callable recursively, add a dependency on this crate from
your declaration crate and update the
#[proc_macro_hack] re-export as
// Before #[proc_macro_hack] pub use demo_hack_impl::add_one;
// After #[proc_macro_hack(support_nested)] pub use demo_hack_impl::add_one;
No change is required within your definition crate, only to the re-export in the declaration crate.
Nested invocations are preprocessed by a TT-muncher, so the caller's crate will be required to contain
#![recursion_limit = "..."]if there are lengthy macro invocations.
Only up to 64 nested invocations are supported.