mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 21:16:44 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			24 lines
		
	
	
		
			518 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			518 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //@ edition:2021
 | |
| 
 | |
| #![feature(async_closure)]
 | |
| 
 | |
| fn needs_async_fn(_: impl async Fn()) {}
 | |
| 
 | |
| fn a() {
 | |
|     let mut x = 1;
 | |
|     needs_async_fn(async || {
 | |
|         //~^ ERROR cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure
 | |
|         x += 1;
 | |
|     });
 | |
| }
 | |
| 
 | |
| fn b() {
 | |
|     let x = String::new();
 | |
|     needs_async_fn(move || async move {
 | |
|         //~^ ERROR expected a closure that implements the `async Fn` trait, but this closure only implements `async FnOnce`
 | |
|         println!("{x}");
 | |
|     });
 | |
| }
 | |
| 
 | |
| fn main() {}
 | 
