//! This test checks that we do need to implement
//! all members, even if their where bounds only hold
//! due to other impls.

trait Foo<T> {
    fn foo()
    where
        Self: Foo<()>;
}

impl Foo<()> for () {
    fn foo() {}
}

impl Foo<u32> for () {}
//~^ ERROR: not all trait items implemented, missing: `foo`

fn main() {}