summaryrefslogtreecommitdiffstats
path: root/tests/ui/rfcs/rfc-2294-if-let-guard/guard-lifetime-1.rs
blob: 792225e656f42770bb49f24ca1c452b13ea54f36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// References to by-move bindings in an if-let guard *cannot* be used after the guard.

#![feature(if_let_guard)]

fn main() {
    let x: Option<Option<String>> = Some(Some(String::new()));
    match x {
        Some(mut y) if let Some(ref z) = y => {
            //~^ ERROR: cannot move out of `x.0` because it is borrowed
            let _z: &String = z;
            let _y: Option<String> = y;
        }
        _ => {}
    }
}