25 lines
594 B
Rust
25 lines
594 B
Rust
#![feature(if_let_guard)]
|
|
|
|
enum VecWrapper { A(Vec<i32>) }
|
|
|
|
fn if_guard(x: VecWrapper) -> usize {
|
|
match x {
|
|
VecWrapper::A(v) if { drop(v); false } => 1,
|
|
//~^ ERROR cannot move out of `v` in pattern guard
|
|
VecWrapper::A(v) => v.len()
|
|
}
|
|
}
|
|
|
|
fn if_let_guard(x: VecWrapper) -> usize {
|
|
match x {
|
|
VecWrapper::A(v) if let Some(()) = { drop(v); None } => 1,
|
|
//~^ ERROR cannot move out of `v` in pattern guard
|
|
VecWrapper::A(v) => v.len()
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
if_guard(VecWrapper::A(vec![107]));
|
|
if_let_guard(VecWrapper::A(vec![107]));
|
|
}
|