// run-pass

fn test_if_panic() {
    let x = if false { panic!() } else { 10 };
    assert_eq!(x, 10);
}

fn test_else_panic() {
    let x = if true { 10 } else { panic!() };
    assert_eq!(x, 10);
}

fn test_elseif_panic() {
    let x = if false { 0 } else if false { panic!() } else { 10 };
    assert_eq!(x, 10);
}

pub fn main() { test_if_panic(); test_else_panic(); test_elseif_panic(); }
