11 impl<T> Trait<T> for Holder<T> {
22 impl<L, R> Either<L, R> {
23 fn converge<T>(self) -> T
29 Either::Left(val) => val.get(),
30 Either::Right(val) => val.get(),
35 fn add_generic<A: Add<B>, B>(
38 ) -> Either<impl Trait<<A as Add<B>>::Output>, impl Trait<<A as Add<B>>::Output>> {
39 if true { Either::Left(Holder(lhs + rhs)) } else { Either::Right(Holder(lhs + rhs)) }
44 ) -> Either<impl Trait<<u32 as Add<u32>>::Output>, impl Trait<<u32 as Add<u32>>::Output>> {
45 add_generic(value, 1u32)
49 add_one(3).converge();