#![feature(if_let_guard)] fn main() { match Some(&4) { None => {}, ref mut foo if { (|| { let bar = foo; bar.take() })(); //~^ ERROR cannot move out of `foo` in pattern guard false } => {}, Some(ref _s) => println!("Note this arm is bogus; the `Some` became `None` in the guard."), _ => println!("Here is some supposedly unreachable code."), } match Some(&4) { None => {}, ref mut foo if let Some(()) = { (|| { let bar = foo; bar.take() })(); //~^ ERROR cannot move out of `foo` in pattern guard None } => {}, Some(_) => {}, } }