// edition:2018
trait T {
    type O;
}

struct S;

impl T for S {
    type O = ();
}

fn foo() -> impl T<O=()> { S }

fn bar(f: impl T<O=()>) {}

fn main() {
    bar(foo); //~ERROR E0277
    let closure = || S;
    bar(closure); //~ERROR E0277
}
