]> git.lizzy.rs Git - rust.git/commitdiff
Rollup merge of #103439 - Nilstrieb:help-me-with-my-macro, r=estebank
authorMatthias Krüger <matthias.krueger@famsik.de>
Tue, 15 Nov 2022 09:44:07 +0000 (10:44 +0100)
committerGitHub <noreply@github.com>
Tue, 15 Nov 2022 09:44:07 +0000 (10:44 +0100)
Show note where the macro failed to match

When feeding the wrong tokens, it used to fail with a very generic error that wasn't very helpful. This change tries to help by noting where specifically the matching went wrong.

```rust
macro_rules! uwu {
    (a a a b) => {};
}
uwu! { a a a c }
```

```diff
error: no rules expected the token `c`
 --> macros.rs:5:14
  |
1 | macro_rules! uwu {
  | ---------------- when calling this macro
...
4 | uwu! { a a a c }
  |              ^ no rules expected this token in macro call
  |
+note: while trying to match `b`
+ --> macros.rs:2:12
+  |
+2 |     (a a a b) => {};
+  |            ^
```

1  2 
compiler/rustc_expand/src/mbe/macro_rules.rs