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