]> git.lizzy.rs Git - rust.git/commit
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)
commit1a6ed3050ff0ba96d0fa4e91fd657fe983623330
tree5baf5798ba2dd8131747634f09e8ff04dc01c4ec
parentca92d90b5917e7176d5ff06607a2cd5352c088d3
parent7e7c11cf560527c4a7c70da63455cc23f4c51235
Rollup merge of #103439 - Nilstrieb:help-me-with-my-macro, r=estebank

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) => {};
+  |            ^
```
compiler/rustc_expand/src/mbe/macro_rules.rs