mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			572 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			572 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
#![feature(if_let_guard)]
 | 
						|
 | 
						|
struct A { a: Box<i32> }
 | 
						|
 | 
						|
fn if_guard(n: i32) {
 | 
						|
    let x = A { a: Box::new(n) };
 | 
						|
    let _y = match x {
 | 
						|
        A { a: v } if { drop(v); true } => v,
 | 
						|
        //~^ ERROR cannot move out of `v` in pattern guard
 | 
						|
        _ => Box::new(0),
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
fn if_let_guard(n: i32) {
 | 
						|
    let x = A { a: Box::new(n) };
 | 
						|
    let _y = match x {
 | 
						|
        A { a: v } if let Some(()) = { drop(v); Some(()) } => v,
 | 
						|
        //~^ ERROR cannot move out of `v` in pattern guard
 | 
						|
        _ => Box::new(0),
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
fn main() {
 | 
						|
    if_guard(107);
 | 
						|
    if_let_guard(107);
 | 
						|
}
 |