Rust cannot finish name resolution before expanding macros because expansion can create new names and new macros. Follow the compiler's iterative expansion loop.
A deep dive into Rust's macro_rules! by analyzing the match_ast! macro, providing practical examples and showcasing its powerful pattern matching capabilities for developers looking to master macros.