// run-pass
// Test for a specific corner case: when we compute the LUB of two fn
// types and their parameters have unbound variables. In that case, we
// wind up relating those two variables. This was causing an ICE in an
// in-progress PR.

fn main() {
    let a_f: fn(_) = |_| ();
    let b_f: fn(_) = |_| ();
    let c_f = match 22 {
        0 => a_f,
        _ => b_f,
    };
    c_f(4);
}
