// run-pass // compile-flags: -Z chalk trait Foo { } trait Bar { type Item: Foo; } impl Foo for i32 { } impl Bar for i32 { type Item = i32; } fn only_foo() { } fn only_bar() { // `T` implements `Bar` hence `::Item` must also implement `Bar` only_foo::() } fn main() { only_bar::(); only_foo::<::Item>(); }