In the following example, helper_macro_bar seems to behave differently when it is called from main_macro and when it is called directly.
I don't understand why. As far as I can tell, both invocations of the macro get the same input. When commenting out the "invalid bar" branch of helper_macro_bar and all invalid helper_macro_bar invocations, it seems to not expect the arg1 token that comes after room: String,.
A browser interface to the Rust compiler to experiment with the language