// Check that or patterns are lowered correctly in `for` loops.
// run-pass

#![feature(or_patterns)]

fn main() {
    let v = vec![Ok(2), Err(3), Ok(5)];
    let mut w = Vec::new();
    for &(Ok(i) | Err(i)) in &v {
        w.push(i);
    }
    let mut u = Vec::new();
    for Ok(i) | Err(i) in v {
        u.push(i);
    }
    assert_eq!(w, [2, 3, 5]);
    assert_eq!(u, [2, 3, 5]);
}
