note: External requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:37:29
   |
LL |     with_signature(cell, t, |cell, t| require(cell, t));
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: defining type: DefId(0/1:19 ~ projection_one_region_trait_bound_closure[317d]::no_relationships_late[0]::{{closure}}[0]) with closure substs [
               '_#1r,
               T,
               i32,
               extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T))
           ]
   = note: late-bound region is '_#3r
   = note: number of external vids: 4
   = note: where '_#1r: '_#2r

note: No external requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:33:1
   |
LL | / fn no_relationships_late<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
LL | | where
LL | |     T: Anything<'b>,
LL | | {
LL | |     with_signature(cell, t, |cell, t| require(cell, t));
LL | |     //~^ ERROR
LL | | }
   | |_^
   |
   = note: defining type: DefId(0/0:8 ~ projection_one_region_trait_bound_closure[317d]::no_relationships_late[0]) with substs [
               '_#1r,
               T
           ]

error: unsatisfied lifetime constraints
  --> $DIR/projection-one-region-trait-bound-closure.rs:37:39
   |
LL | fn no_relationships_late<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
   |                          --  -- lifetime `'b` defined here
   |                          |
   |                          lifetime `'a` defined here
...
LL |     with_signature(cell, t, |cell, t| require(cell, t));
   |                                       ^^^^^^^^^^^^^^^^ argument requires that `'b` must outlive `'a`

note: External requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:47:29
   |
LL |     with_signature(cell, t, |cell, t| require(cell, t));
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: defining type: DefId(0/1:23 ~ projection_one_region_trait_bound_closure[317d]::no_relationships_early[0]::{{closure}}[0]) with closure substs [
               '_#1r,
               '_#2r,
               T,
               i32,
               extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T))
           ]
   = note: number of external vids: 4
   = note: where '_#2r: '_#3r

note: No external requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:42:1
   |
LL | / fn no_relationships_early<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
LL | | where
LL | |     T: Anything<'b>,
LL | |     'a: 'a,
...  |
LL | |     //~^ ERROR
LL | | }
   | |_^
   |
   = note: defining type: DefId(0/0:9 ~ projection_one_region_trait_bound_closure[317d]::no_relationships_early[0]) with substs [
               '_#1r,
               '_#2r,
               T
           ]

error: unsatisfied lifetime constraints
  --> $DIR/projection-one-region-trait-bound-closure.rs:47:39
   |
LL | fn no_relationships_early<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
   |                           --  -- lifetime `'b` defined here
   |                           |
   |                           lifetime `'a` defined here
...
LL |     with_signature(cell, t, |cell, t| require(cell, t));
   |                                       ^^^^^^^^^^^^^^^^ argument requires that `'b` must outlive `'a`

note: External requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:60:29
   |
LL |     with_signature(cell, t, |cell, t| require(cell, t));
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: defining type: DefId(0/1:27 ~ projection_one_region_trait_bound_closure[317d]::projection_outlives[0]::{{closure}}[0]) with closure substs [
               '_#1r,
               '_#2r,
               T,
               i32,
               extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T))
           ]
   = note: number of external vids: 4
   = note: where <T as Anything<ReClosureBound('_#2r)>>::AssocType: '_#3r

note: No external requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:52:1
   |
LL | / fn projection_outlives<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
LL | | where
LL | |     T: Anything<'b>,
LL | |     T::AssocType: 'a,
...  |
LL | |     with_signature(cell, t, |cell, t| require(cell, t));
LL | | }
   | |_^
   |
   = note: defining type: DefId(0/0:10 ~ projection_one_region_trait_bound_closure[317d]::projection_outlives[0]) with substs [
               '_#1r,
               '_#2r,
               T
           ]

note: External requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:69:29
   |
LL |     with_signature(cell, t, |cell, t| require(cell, t));
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: defining type: DefId(0/1:31 ~ projection_one_region_trait_bound_closure[317d]::elements_outlive[0]::{{closure}}[0]) with closure substs [
               '_#1r,
               '_#2r,
               T,
               i32,
               extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T))
           ]
   = note: number of external vids: 4
   = note: where '_#2r: '_#3r

note: No external requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:64:1
   |
LL | / fn elements_outlive<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
LL | | where
LL | |     T: Anything<'b>,
LL | |     'b: 'a,
LL | | {
LL | |     with_signature(cell, t, |cell, t| require(cell, t));
LL | | }
   | |_^
   |
   = note: defining type: DefId(0/0:11 ~ projection_one_region_trait_bound_closure[317d]::elements_outlive[0]) with substs [
               '_#1r,
               '_#2r,
               T
           ]

note: External requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:81:29
   |
LL |     with_signature(cell, t, |cell, t| require(cell, t));
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: defining type: DefId(0/1:34 ~ projection_one_region_trait_bound_closure[317d]::one_region[0]::{{closure}}[0]) with closure substs [
               '_#1r,
               T,
               i32,
               extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T))
           ]
   = note: number of external vids: 3
   = note: where '_#1r: '_#2r

note: No external requirements
  --> $DIR/projection-one-region-trait-bound-closure.rs:73:1
   |
LL | / fn one_region<'a, T>(cell: Cell<&'a ()>, t: T)
LL | | where
LL | |     T: Anything<'a>,
LL | | {
...  |
LL | |     with_signature(cell, t, |cell, t| require(cell, t));
LL | | }
   | |_^
   |
   = note: defining type: DefId(0/0:12 ~ projection_one_region_trait_bound_closure[317d]::one_region[0]) with substs [
               '_#1r,
               T
           ]

error: aborting due to 2 previous errors

