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.
22 lines
793 B
Rust
22 lines
793 B
Rust
// (typeof used because it's surprisingly hard to find an unparsed token after a stmt)
|
|
macro_rules! m {
|
|
() => ( i ; typeof ); //~ ERROR expected expression, found reserved keyword `typeof`
|
|
//~| ERROR macro expansion ignores reserved keyword `typeof`
|
|
//~| ERROR macro expansion ignores `;`
|
|
//~| ERROR macro expansion ignores `;`
|
|
//~| ERROR cannot find type `i` in this scope
|
|
//~| ERROR cannot find value `i` in this scope
|
|
//~| WARN trailing semicolon in macro
|
|
//~| WARN this was previously
|
|
}
|
|
|
|
fn main() {
|
|
let a: m!();
|
|
let i = m!();
|
|
match 0 {
|
|
m!() => {}
|
|
}
|
|
|
|
m!();
|
|
}
|