mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	 bde2dfb127
			
		
	
	
		bde2dfb127
		
	
	
	
	
		
			
			When a `Local` is fully parsed, but not followed by a `;`, keep the `:` span
arround and mention it. If the type could continue being parsed as an
expression, suggest replacing the `:` with a `=`.
```
error: expected one of `!`, `+`, `->`, `::`, `;`, or `=`, found `.`
 --> file.rs:2:32
  |
2 |     let _: std::env::temp_dir().join("foo");
  |          -                     ^ expected one of `!`, `+`, `->`, `::`, `;`, or `=`
  |          |
  |          while parsing the type for `_`
  |          help: use `=` if you meant to assign
```
Fix #119665.
		
	
			
		
			
				
	
	
		
			160 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| error: invalid const generic expression
 | |
|   --> $DIR/bad-const-generic-exprs.rs:4:16
 | |
|    |
 | |
| LL |     let _: Wow<if true {}>;
 | |
|    |                ^^^^^^^^^^
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ if true {} }>;
 | |
|    |                +            +
 | |
| 
 | |
| error: invalid const generic expression
 | |
|   --> $DIR/bad-const-generic-exprs.rs:7:16
 | |
|    |
 | |
| LL |     let _: Wow<|| ()>;
 | |
|    |                ^^^^^
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ || () }>;
 | |
|    |                +       +
 | |
| 
 | |
| error: expected one of `,` or `>`, found `.`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:10:17
 | |
|    |
 | |
| LL |     let _: Wow<A.b>;
 | |
|    |                 ^ expected one of `,` or `>`
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ A.b }>;
 | |
|    |                +     +
 | |
| 
 | |
| error: expected one of `,` or `>`, found `.`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:13:17
 | |
|    |
 | |
| LL |     let _: Wow<A.0>;
 | |
|    |                 ^ expected one of `,` or `>`
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ A.0 }>;
 | |
|    |                +     +
 | |
| 
 | |
| error: expected type, found `]`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:16:17
 | |
|    |
 | |
| LL |     let _: Wow<[]>;
 | |
|    |                 ^ expected type
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ [] }>;
 | |
|    |                +    +
 | |
| 
 | |
| error: expected type, found `12`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:19:17
 | |
|    |
 | |
| LL |     let _: Wow<[12]>;
 | |
|    |                 ^^ expected type
 | |
| 
 | |
| error: invalid const generic expression
 | |
|   --> $DIR/bad-const-generic-exprs.rs:19:16
 | |
|    |
 | |
| LL |     let _: Wow<[12]>;
 | |
|    |                ^^^^
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ [12] }>;
 | |
|    |                +      +
 | |
| 
 | |
| error: expected type, found `0`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:23:17
 | |
|    |
 | |
| LL |     let _: Wow<[0, 1, 3]>;
 | |
|    |                 ^ expected type
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ [0, 1, 3] }>;
 | |
|    |                +           +
 | |
| 
 | |
| error: expected type, found `0xff`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:26:17
 | |
|    |
 | |
| LL |     let _: Wow<[0xff; 8]>;
 | |
|    |                 ^^^^ expected type
 | |
| 
 | |
| error: invalid const generic expression
 | |
|   --> $DIR/bad-const-generic-exprs.rs:26:16
 | |
|    |
 | |
| LL |     let _: Wow<[0xff; 8]>;
 | |
|    |                ^^^^^^^^^
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ [0xff; 8] }>;
 | |
|    |                +           +
 | |
| 
 | |
| error: expected type, found `1`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:30:17
 | |
|    |
 | |
| LL |     let _: Wow<[1, 2]>; // Regression test for issue #81698.
 | |
|    |                 ^ expected type
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ [1, 2] }>; // Regression test for issue #81698.
 | |
|    |                +        +
 | |
| 
 | |
| error: expected type, found `0`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:33:17
 | |
|    |
 | |
| LL |     let _: Wow<&0>;
 | |
|    |                 ^ expected type
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ &0 }>;
 | |
|    |                +    +
 | |
| 
 | |
| error: expected type, found `""`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:36:17
 | |
|    |
 | |
| LL |     let _: Wow<("", 0)>;
 | |
|    |                 ^^ expected type
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ ("", 0) }>;
 | |
|    |                +         +
 | |
| 
 | |
| error: expected type, found `1`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:39:17
 | |
|    |
 | |
| LL |     let _: Wow<(1 + 2) * 3>;
 | |
|    |                 ^ expected type
 | |
|    |
 | |
| help: expressions must be enclosed in braces to be used as const generic arguments
 | |
|    |
 | |
| LL |     let _: Wow<{ (1 + 2) * 3 }>;
 | |
|    |                +             +
 | |
| 
 | |
| error: expected one of `,` or `>`, found `0`
 | |
|   --> $DIR/bad-const-generic-exprs.rs:43:17
 | |
|    |
 | |
| LL |     let _: Wow<!0>;
 | |
|    |          -      ^ expected one of `,` or `>`
 | |
|    |          |
 | |
|    |          while parsing the type for `_`
 | |
|    |
 | |
| help: you might have meant to end the type parameters here
 | |
|    |
 | |
| LL |     let _: Wow<!>0>;
 | |
|    |                 +
 | |
| 
 | |
| error: aborting due to 15 previous errors
 | |
| 
 |