1 #![feature(type_alias_impl_trait)]
3 use std::marker::PhantomData;
6 fn foo<T, U>(t: T) -> U;
9 trait ProofForConversion<X> {
10 fn convert<T, U>(_: PhantomData<Self>, r: T) -> U;
13 impl<X: Trait> ProofForConversion<X> for () {
14 fn convert<T, U>(_: PhantomData<Self>, r: T) -> U {
19 type Converter<T> = impl ProofForConversion<T>;
21 fn _defining_use<T: Trait>() -> Converter<T> {
23 //~^ ERROR the trait bound `T: Trait` is not satisfied