//@ check-pass | |
struct Foo<'a> { | |
foo: &'a mut usize, | |
} | |
trait Bar<'a> { | |
type FooRef<'b> | |
where | |
'a: 'b; | |
fn uwu(foo: Foo<'a>, f: impl for<'b> FnMut(Self::FooRef<'b>)); | |
} | |
impl<'a> Bar<'a> for () { | |
type FooRef<'b> | |
= | |
&'b Foo<'a> | |
where | |
'a : 'b, | |
; | |
fn uwu( | |
foo: Foo<'a>, | |
mut f: impl for<'b> FnMut(&'b Foo<'a>), //relevant part | |
) { | |
f(&foo); | |
} | |
} | |
fn main() {} |