Closed
Description
The problematic code:
macro_rules! x {
($a:expr, $b:expr) => {}
}
macro_rules! y {
($a:expr, $b:expr) => {
x!($a, $b)
}
}
// much later
fn foo() {
macro_rules! x {
($a:expr) => {}
}
// later still
y!(1, 2)
}
Rustc output:
error: no rules expected the token `,`
--> <anon>:8:14
8 |> x!($a, $b)
|> ^
This error points out that the y!
macro performed an incorrect invocation of the x!
macro, but fails to point out which x!
macro in particular it is trying to invoke, or the location where the y!
macro was invoked. In addition, it doesn't point out tokens which the macro would accept (in this case, the end of the invocation).