mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	Trait predicates for types which have errors may still evaluate to OK leading to downstream ICEs. Now we return a selection error for such types in candidate assembly and thereby prevent such issues
		
			
				
	
	
		
			25 lines
		
	
	
		
			766 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			766 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
error[E0106]: missing lifetime specifier
 | 
						|
  --> $DIR/ice-unsized-struct-const-eval-123154.rs:4:16
 | 
						|
   |
 | 
						|
LL |     pub data: [&usize]
 | 
						|
   |                ^ expected named lifetime parameter
 | 
						|
   |
 | 
						|
help: consider introducing a named lifetime parameter
 | 
						|
   |
 | 
						|
LL ~ struct AA<'a> {
 | 
						|
LL ~     pub data: [&'a usize]
 | 
						|
   |
 | 
						|
 | 
						|
error[E0308]: mismatched types
 | 
						|
  --> $DIR/ice-unsized-struct-const-eval-123154.rs:9:23
 | 
						|
   |
 | 
						|
LL |     const fn new() -> Self { }
 | 
						|
   |              ---      ^^^^ expected `AA`, found `()`
 | 
						|
   |              |
 | 
						|
   |              implicitly returns `()` as its body has no tail or `return` expression
 | 
						|
 | 
						|
error: aborting due to 2 previous errors
 | 
						|
 | 
						|
Some errors have detailed explanations: E0106, E0308.
 | 
						|
For more information about an error, try `rustc --explain E0106`.
 |