error: macro expansion ignores token `;` and any following
  --> $DIR/macro-context.rs:3:15
   |
LL |     () => ( i ; typeof );
   |               ^
...
LL |     let a: m!();
   |            ---- caused by the macro expansion here
   |
   = note: the usage of `m!` is likely invalid in type context

error: macro expansion ignores token `typeof` and any following
  --> $DIR/macro-context.rs:3:17
   |
LL |     () => ( i ; typeof );
   |                 ^^^^^^
...
LL |     let i = m!();
   |             ---- caused by the macro expansion here
   |
   = note: the usage of `m!` is likely invalid in expression context

error: macro expansion ignores token `;` and any following
  --> $DIR/macro-context.rs:3:15
   |
LL |     () => ( i ; typeof );
   |               ^
...
LL |         m!() => {}
   |         ---- caused by the macro expansion here
   |
   = note: the usage of `m!` is likely invalid in pattern context

error: expected expression, found reserved keyword `typeof`
  --> $DIR/macro-context.rs:3:17
   |
LL |     () => ( i ; typeof );
   |                 ^^^^^^ expected expression
...
LL |     m!();
   |     ---- in this macro invocation
   |
   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0412]: cannot find type `i` in this scope
  --> $DIR/macro-context.rs:3:13
   |
LL |     () => ( i ; typeof );
   |             ^ help: a builtin type with a similar name exists: `i8`
...
LL |     let a: m!();
   |            ---- in this macro invocation
   |
   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0425]: cannot find value `i` in this scope
  --> $DIR/macro-context.rs:3:13
   |
LL |     () => ( i ; typeof );
   |             ^ not found in this scope
...
LL |     let i = m!();
   |             ---- in this macro invocation
   |
   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: trailing semicolon in macro used in expression position
  --> $DIR/macro-context.rs:3:15
   |
LL |     () => ( i ; typeof );
   |               ^
...
LL |     let i = m!();
   |             ---- 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: `#[warn(semicolon_in_expressions_from_macros)]` on by default
   = note: this warning originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 6 previous errors; 1 warning emitted

Some errors have detailed explanations: E0412, E0425.
For more information about an error, try `rustc --explain E0412`.
Future incompatibility report: Future breakage diagnostic:
warning: trailing semicolon in macro used in expression position
  --> $DIR/macro-context.rs:3:15
   |
LL |     () => ( i ; typeof );
   |               ^
...
LL |     let i = m!();
   |             ---- 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: `#[warn(semicolon_in_expressions_from_macros)]` on by default
   = note: this warning originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)

