trait Trait<'a> { | |
type Out; | |
fn call(&'a self) -> Self::Out; | |
} | |
struct X(()); | |
impl<'a> Trait<'a> for X { | |
type Out = (); | |
fn call(&'a self) -> Self::Out { | |
() | |
} | |
} | |
fn f() -> impl for<'a> Trait<'a, Out = impl Sized + 'a> { | |
//~^ ERROR `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait` | |
X(()) | |
} | |
fn main() { | |
let _ = f(); | |
} |