fn foo(x: u32) -> u32 {
    x * 2
}

fn bar(x: u32) -> u32 {
    x * 3
}

// original example from Issue #102608
fn foobar(n: u32) -> u32 {
    let g = if n % 2 == 0 { &foo } else { &bar };
    //~^ ERROR `if` and `else` have incompatible types
    //~| different fn items have unique types, even if their signatures are the same
    g(n)
}

fn main() {
    assert_eq!(foobar(7), 21);
    assert_eq!(foobar(8), 16);

    // general mismatch of fn item types
    let mut a = foo;
    a = bar;
    //~^ ERROR mismatched types
    //~| expected fn item `fn(_) -> _ {foo}`
    //~| found fn item `fn(_) -> _ {bar}`
    //~| different fn items have unique types, even if their signatures are the same

    // display note even when boxed
    let mut b = Box::new(foo);
    b = Box::new(bar);
    //~^ ERROR mismatched types
    //~| different fn items have unique types, even if their signatures are the same

    // suggest removing reference
    let c: fn(u32) -> u32 = &foo;
    //~^ ERROR mismatched types
    //~| expected fn pointer `fn(_) -> _`
    //~| found reference `&fn(_) -> _ {foo}`

    // suggest using reference
    let d: &fn(u32) -> u32 = foo;
    //~^ ERROR mismatched types
    //~| expected reference `&fn(_) -> _`
    //~| found fn item `fn(_) -> _ {foo}`

    // suggest casting with reference
    let e: &fn(u32) -> u32 = &foo;
    //~^ ERROR mismatched types
    //~| expected reference `&fn(_) -> _`
    //~| found reference `&fn(_) -> _ {foo}`

    // OK
    let mut z: fn(u32) -> u32 = foo as fn(u32) -> u32;
    z = bar;
}
