fn foo() -> i32 {
    42
}

fn bar(a: i64) -> i64 {
    43
}

enum Foo {
    Bar(usize),
}

fn main() {
    foo > 12;
    //~^ ERROR binary operation `>` cannot be applied to type `fn() -> i32 {foo}` [E0369]
    //~| ERROR mismatched types [E0308]

    bar > 13;
    //~^ ERROR binary operation `>` cannot be applied to type `fn(i64) -> i64 {bar}` [E0369]
    //~| ERROR mismatched types [E0308]

    foo > foo;
    //~^ ERROR binary operation `>` cannot be applied to type `fn() -> i32 {foo}` [E0369]

    foo > bar;
    //~^ ERROR binary operation `>` cannot be applied to type `fn() -> i32 {foo}` [E0369]
    //~| ERROR mismatched types [E0308]

    let i = Foo::Bar;
    assert_eq!(Foo::Bar, i);
    //~^ ERROR binary operation `==` cannot be applied to type `fn(usize) -> Foo {Foo::Bar}` [E0369]
    //~| ERROR `fn(usize) -> Foo {Foo::Bar}` doesn't implement `std::fmt::Debug` [E0277]
    //~| ERROR `fn(usize) -> Foo {Foo::Bar}` doesn't implement `std::fmt::Debug` [E0277]
}
