error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:2:5
   |
LL |     f1(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'r, 's> fn(&'r (), &'s ()) -> _`
...
LL | fn f1<F>(_: F) where F: Fn(&(), &()) {}
   |                         ------------ required by this bound in `f1`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:3:5
   |
LL |     f2(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'a, 'r> fn(&'a (), &'r ()) -> _`
...
LL | fn f2<F>(_: F) where F: for<'a> Fn(&'a (), &()) {}
   |                         ----------------------- required by this bound in `f2`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:4:5
   |
LL |     f3(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'r> fn(&(), &'r ()) -> _`
...
LL | fn f3<'a, F>(_: F) where F: Fn(&'a (), &()) {}
   |                             --------------- required by this bound in `f3`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:5:5
   |
LL |     f4(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'s, 'r> fn(&'s (), &'r ()) -> _`
...
LL | fn f4<F>(_: F) where F: for<'r> Fn(&(), &'r ()) {}
   |                         ----------------------- required by this bound in `f4`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:6:5
   |
LL |     f5(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'r> fn(&'r (), &'r ()) -> _`
...
LL | fn f5<F>(_: F) where F: for<'r> Fn(&'r (), &'r ()) {}
   |                         -------------------------- required by this bound in `f5`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:7:5
   |
LL |     g1(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'r> fn(&'r (), std::boxed::Box<(dyn for<'s> std::ops::Fn(&'s ()) + 'static)>) -> _`
...
LL | fn g1<F>(_: F) where F: Fn(&(), Box<dyn Fn(&())>) {}
   |                         ------------------------- required by this bound in `g1`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:8:5
   |
LL |     g2(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'r> fn(&'r (), for<'s> fn(&'s ())) -> _`
...
LL | fn g2<F>(_: F) where F: Fn(&(), fn(&())) {}
   |                         ---------------- required by this bound in `g2`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:9:5
   |
LL |     g3(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'s> fn(&'s (), std::boxed::Box<(dyn for<'r> std::ops::Fn(&'r ()) + 'static)>) -> _`
...
LL | fn g3<F>(_: F) where F: for<'s> Fn(&'s (), Box<dyn Fn(&())>) {}
   |                         ------------------------------------ required by this bound in `g3`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:10:5
   |
LL |     g4(|_: (), _: ()| {});
   |     ^^ -------------- found signature of `fn((), ()) -> _`
   |     |
   |     expected signature of `for<'s> fn(&'s (), for<'r> fn(&'r ())) -> _`
...
LL | fn g4<F>(_: F) where F: Fn(&(), for<'r> fn(&'r ())) {}
   |                         --------------------------- required by this bound in `g4`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:11:5
   |
LL |     h1(|_: (), _: (), _: (), _: ()| {});
   |     ^^ ---------------------------- found signature of `fn((), (), (), ()) -> _`
   |     |
   |     expected signature of `for<'r, 's> fn(&'r (), std::boxed::Box<(dyn for<'t0> std::ops::Fn(&'t0 ()) + 'static)>, &'s (), for<'t0, 't1> fn(&'t0 (), &'t1 ())) -> _`
...
LL | fn h1<F>(_: F) where F: Fn(&(), Box<dyn Fn(&())>, &(), fn(&(), &())) {}
   |                         -------------------------------------------- required by this bound in `h1`

error[E0631]: type mismatch in closure arguments
  --> $DIR/anonymous-higher-ranked-lifetime.rs:12:5
   |
LL |     h2(|_: (), _: (), _: (), _: ()| {});
   |     ^^ ---------------------------- found signature of `fn((), (), (), ()) -> _`
   |     |
   |     expected signature of `for<'r, 't0> fn(&'r (), std::boxed::Box<(dyn for<'s> std::ops::Fn(&'s ()) + 'static)>, &'t0 (), for<'s, 't1> fn(&'s (), &'t1 ())) -> _`
...
LL | fn h2<F>(_: F) where F: for<'t0> Fn(&(), Box<dyn Fn(&())>, &'t0 (), fn(&(), &())) {}
   |                         --------------------------------------------------------- required by this bound in `h2`

error: aborting due to 11 previous errors

For more information about this error, try `rustc --explain E0631`.
