| // ignore-tidy-linelength |
| #![feature(impl_trait_in_bindings)] |
| //~^ WARNING the feature `impl_trait_in_bindings` is incomplete |
| // Reduction to `impl Trait` |
| trait FooLike { type Output; } |
| impl<T> FooLike for Foo<T> { |
| /// `T::Assoc` can't be normalized any further here. |
| fn foo_fail<T: Trait>() -> impl FooLike<Output=T::Assoc> { |
| //~^ ERROR: type mismatch |
| // Same with lifetimes in the trait |
| /// Missing bound constraining `Assoc`, `T::Assoc` can't be normalized further. |
| fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike<Output=T::Assoc> { |
| //~^ ERROR: type mismatch |
| //~^^ ERROR `impl Trait` return type cannot contain a projection or `Self` that references lifetimes from a parent scope |