mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 13:04:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			29 lines
		
	
	
		
			795 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			795 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // revisions: no_drop_tracking drop_tracking drop_tracking_mir
 | |
| // [drop_tracking] compile-flags: -Zdrop-tracking
 | |
| // [drop_tracking_mir] compile-flags: -Zdrop-tracking-mir
 | |
| // edition:2018
 | |
| 
 | |
| use ::core::pin::Pin;
 | |
| use ::core::future::Future;
 | |
| use ::core::marker::Send;
 | |
| 
 | |
| trait Foo {
 | |
|     fn bar<'me, 'async_trait, T: Send>(x: &'me T)
 | |
|         -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
 | |
|         where 'me: 'async_trait;
 | |
| }
 | |
| 
 | |
| impl Foo for () {
 | |
|     fn bar<'me, 'async_trait, T: Send>(x: &'me T)
 | |
|         -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
 | |
|         where 'me:'async_trait {
 | |
|             Box::pin( //~ ERROR future cannot be sent between threads safely
 | |
|                 async move {
 | |
|                     let x = x;
 | |
|                 }
 | |
|             )
 | |
|          }
 | |
| }
 | |
| 
 | |
| fn main() { }
 | 
