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.
51 lines
2.2 KiB
Plaintext
51 lines
2.2 KiB
Plaintext
error: macro expansion ignores `assert_eq` and any tokens following
|
|
--> $DIR/macro-in-expression-context.rs:12:9
|
|
|
|
|
LL | assert_eq!("B", "B");
|
|
| ^^^^^^^^^
|
|
...
|
|
LL | foo!()
|
|
| ------ caused by the macro expansion here
|
|
|
|
|
= note: the usage of `foo!` is likely invalid in expression context
|
|
help: you might be missing a semicolon here
|
|
|
|
|
LL | foo!();
|
|
| +
|
|
|
|
warning: trailing semicolon in macro used in expression position
|
|
--> $DIR/macro-in-expression-context.rs:5:29
|
|
|
|
|
LL | assert_eq!("A", "A");
|
|
| ^
|
|
...
|
|
LL | foo!()
|
|
| ------ in this macro invocation
|
|
|
|
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
|
= note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
|
|
= note: macro invocations at the end of a block are treated as expressions
|
|
= note: to ignore the value produced by the macro, add a semicolon after the invocation of `foo`
|
|
= note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
|
|
= note: this warning originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error: aborting due to 1 previous error; 1 warning emitted
|
|
|
|
Future incompatibility report: Future breakage diagnostic:
|
|
warning: trailing semicolon in macro used in expression position
|
|
--> $DIR/macro-in-expression-context.rs:5:29
|
|
|
|
|
LL | assert_eq!("A", "A");
|
|
| ^
|
|
...
|
|
LL | foo!()
|
|
| ------ in this macro invocation
|
|
|
|
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
|
= note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
|
|
= note: macro invocations at the end of a block are treated as expressions
|
|
= note: to ignore the value produced by the macro, add a semicolon after the invocation of `foo`
|
|
= note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
|
|
= note: this warning originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|