#![feature(type_alias_impl_trait)]

pub trait TraitWithAssoc {
    type Assoc;
}

pub type Foo<V> = impl Trait<V::Assoc>;
//~^ ERROR

pub trait Trait<U> {}

impl<W> Trait<W> for () {}

pub fn foo_desugared<T: TraitWithAssoc>(_: T) -> Foo<T> {
    ()
}
