| //@ 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() {} |