mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
		
			714 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			714 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
// edition:2021
 | 
						|
 | 
						|
trait SendFuture: Send {
 | 
						|
    type Output;
 | 
						|
}
 | 
						|
 | 
						|
impl<Fut: Send> SendFuture for Fut {
 | 
						|
    type Output = ();
 | 
						|
}
 | 
						|
 | 
						|
async fn broken_fut() {
 | 
						|
    ident_error;
 | 
						|
    //~^ ERROR cannot find value `ident_error` in this scope
 | 
						|
}
 | 
						|
 | 
						|
// triggers normalization of `<Fut as SendFuture>::Output`,
 | 
						|
// which requires `Fut: Send`.
 | 
						|
fn normalize<Fut: SendFuture>(_: Fut, _: Fut::Output) {}
 | 
						|
 | 
						|
async fn iceice<A, B>()
 | 
						|
// <- async fn is necessary
 | 
						|
where
 | 
						|
    A: Send,
 | 
						|
    B: Send, // <- a second bound
 | 
						|
{
 | 
						|
    normalize(broken_fut(), ());
 | 
						|
    //~^ ERROR: cannot check whether the hidden type of opaque type satisfies auto traits
 | 
						|
    //~| ERROR: cannot check whether the hidden type of opaque type satisfies auto traits
 | 
						|
}
 | 
						|
 | 
						|
fn main() {}
 |