blob: 827335f6a8494395fbea18f5f8d39c275cf49b78 [file] [log] [blame] [edit]
#![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);
}