30 lines
441 B
Rust
30 lines
441 B
Rust
// 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() {}
|