1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#![feature(type_alias_impl_trait)] trait T { type Assoc: Cake; } trait Cake: std::fmt::Display { fn cake() -> Self; } type Foo = impl T; fn foo() -> impl T { //~^ ERROR `(): T` is not satisfied panic!() } fn a() -> Foo { foo() } fn main() { println!("{}", <Foo as T>::Assoc::cake()); }