error: lifetime may not live long enough
  --> $DIR/regions-free-region-ordering-caller.rs:11:12
   |
LL | fn call2<'a, 'b>(a: &'a usize, b: &'b usize) {
   |          --  -- lifetime `'b` defined here
   |          |
   |          lifetime `'a` defined here
LL |     let z: Option<&'b &'a usize> = None;
   |            ^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'b`
   |
   = help: consider adding the following bound: `'a: 'b`

error: lifetime may not live long enough
  --> $DIR/regions-free-region-ordering-caller.rs:17:12
   |
LL | fn call3<'a, 'b>(a: &'a usize, b: &'b usize) {
   |          --  -- lifetime `'b` defined here
   |          |
   |          lifetime `'a` defined here
LL |     let y: Paramd<'a> = Paramd { x: a };
LL |     let z: Option<&'b Paramd<'a>> = None;
   |            ^^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'b`
   |
   = help: consider adding the following bound: `'a: 'b`

error: lifetime may not live long enough
  --> $DIR/regions-free-region-ordering-caller.rs:22:12
   |
LL | fn call4<'a, 'b>(a: &'a usize, b: &'b usize) {
   |          --  -- lifetime `'b` defined here
   |          |
   |          lifetime `'a` defined here
LL |     let z: Option<&'a &'b usize> = None;
   |            ^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'b` must outlive `'a`
   |
   = help: consider adding the following bound: `'b: 'a`

error: aborting due to 3 previous errors

