1 #![feature(type_alias_impl_trait)]
2 #![allow(incomplete_features)]
14 type Bar: Bar<Foo = Self::Foo>;
16 fn foo() -> Self::Foo;
17 fn bar() -> Self::Bar;
25 fn foo() -> Self::Foo {
30 // FIXME(#86731): The below is illegal use of `type_alias_impl_trait`
31 // but the compiler doesn't report it, we should fix it.
32 pub type FooImpl = impl Foo;
33 pub type BarImpl = impl Bar<Foo = FooImpl>;
34 //~^ ERROR: type mismatch resolving `<() as Bar>::Foo == ()`
40 fn foo() -> Self::Foo {
44 fn bar() -> Self::Bar {