// check-pass trait Bar { fn bar() {} } trait Foo: Bar {} fn test() where T: Foo { >::bar(); } struct Faz; impl Faz { fn test() where T: Foo { >::bar() } } trait Fiz { fn fiz() where T: Foo { >::bar(); } } impl Bar for u8 {} impl Foo for u8 {} impl Fiz for u8 {} fn main() { test::(); Faz::<3>::test::(); >::fiz::(); }