mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 21:16:44 +00:00 
			
		
		
		
	 a201fab208
			
		
	
	
		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.
		
			
				
	
	
		
			100 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| error: macro expansion ignores `;` and any tokens 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 reserved keyword `typeof` and any tokens 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 `;` and any tokens 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)
 | |
| 
 |