// check-pass

trait Bar {
    type Type;
}
struct Foo<'a>(&'a ());
impl<'a> Bar for Foo<'a> {
    type Type = ();
}

fn func<'a>(_: <Foo<'a> as Bar>::Type) {}
fn assert_is_func<A>(_: fn(A)) {}

fn test()
where
    for<'a> <Foo<'a> as Bar>::Type: Sized,
{
    assert_is_func(func);
}

fn main() {}