| An `impl Trait` captured a higher-ranked lifetime, which is not supported. |
| |
| Currently, `impl Trait` types are only allowed to capture lifetimes from |
| their parent items, and not from any `for<'a>` binders in scope. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0657 |
| trait BorrowInto<'a> { |
| type Target; |
| |
| fn borrow_into(&'a self) -> Self::Target; |
| } |
| |
| impl<'a> BorrowInto<'a> for () { |
| type Target = &'a (); |
| |
| fn borrow_into(&'a self) -> Self::Target { |
| self |
| } |
| } |
| |
| fn opaque() -> impl for<'a> BorrowInto<'a, Target = impl Sized + 'a> { |
| () |
| } |
| ``` |