1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#![feature(type_alias_impl_trait)] pub trait TraitWithAssoc { type Assoc; } pub type Foo<V> = impl Trait<V::Assoc>; //~^ ERROR //~^^ ERROR pub trait Trait<U> {} impl<W> Trait<W> for () {} pub fn foo_desugared<T: TraitWithAssoc>(_: T) -> Foo<T> { () }