a201fab208
By using `token_descr`, as is done for many other errors, we can get slightly better descriptions in error messages, e.g. "macro expansion ignores token `let` and any following" becomes "macro expansion ignores keyword `let` and any tokens following". This will be more important once invisible delimiters start being mentioned in error messages -- without this commit, that leads to error messages such as "error at ``" because invisible delimiters are pretty printed as an empty string.
28 lines
856 B
Rust
28 lines
856 B
Rust
//@ run-rustfix
|
|
|
|
macro_rules! foo {
|
|
() => {
|
|
assert_eq!("A", "A");
|
|
//~^ WARN trailing semicolon in macro
|
|
//~| WARN this was previously
|
|
//~| NOTE macro invocations at the end of a block
|
|
//~| NOTE to ignore the value produced by the macro
|
|
//~| NOTE for more information
|
|
//~| NOTE `#[warn(semicolon_in_expressions_from_macros)]` on by default
|
|
assert_eq!("B", "B");
|
|
}
|
|
//~^^ ERROR macro expansion ignores `assert_eq` and any tokens following
|
|
//~| NOTE the usage of `foo!` is likely invalid in expression context
|
|
}
|
|
|
|
fn main() {
|
|
foo!();
|
|
//~^ NOTE caused by the macro expansion here
|
|
//~| NOTE in this expansion
|
|
//~| NOTE in this expansion
|
|
//~| NOTE in this expansion
|
|
//~| NOTE in this expansion
|
|
//~| NOTE in this expansion
|
|
//~| NOTE in this expansion
|
|
}
|