note: External requirements
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:27:26
   |
LL |       with_signature(a, b, |x, y| {
   |  __________________________^
LL | |
LL | |         //
LL | |         // See `correct_region`, which explains the point of this
...  |
LL | |         require(&x, &y)
LL | |     })
   | |_____^
   |
   = note: defining type: DefId(0:14 ~ ty_param_closure_outlives_from_where_clause[317d]::no_region[0]::{{closure}}[0]) with closure substs [
               T,
               i32,
               extern "rust-call" fn((std::cell::Cell<&'_#1r ()>, T)),
           ]
   = note: late-bound region is '_#2r
   = note: number of external vids: 3
   = note: where T: '_#1r

note: No external requirements
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:26:1
   |
LL | / fn no_region<'a, T>(a: Cell<&'a ()>, b: T) {
LL | |     with_signature(a, b, |x, y| {
LL | |
LL | |         //
...  |
LL | |     })
LL | | }
   | |_^
   |
   = note: defining type: DefId(0:11 ~ ty_param_closure_outlives_from_where_clause[317d]::no_region[0]) with substs [
               T,
           ]

error[E0309]: the parameter type `T` may not live long enough
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:27:26
   |
LL |       with_signature(a, b, |x, y| {
   |  __________________________^
LL | |
LL | |         //
LL | |         // See `correct_region`, which explains the point of this
...  |
LL | |         require(&x, &y)
LL | |     })
   | |_____^
   |
   = help: consider adding an explicit lifetime bound `T: ReFree(DefId(0:11 ~ ty_param_closure_outlives_from_where_clause[317d]::no_region[0]), BrNamed(DefId(0:12 ~ ty_param_closure_outlives_from_where_clause[317d]::no_region[0]::'a[0]), 'a))`...

note: External requirements
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:43:26
   |
LL |       with_signature(a, b, |x, y| {
   |  __________________________^
LL | |         // Key point of this test:
LL | |         //
LL | |         // The *closure* is being type-checked with all of its free
...  |
LL | |         require(&x, &y)
LL | |     })
   | |_____^
   |
   = note: defining type: DefId(0:18 ~ ty_param_closure_outlives_from_where_clause[317d]::correct_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 T: '_#2r

note: No external requirements
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:39:1
   |
LL | / fn correct_region<'a, T>(a: Cell<&'a ()>, b: T)
LL | | where
LL | |     T: 'a,
LL | | {
...  |
LL | |     })
LL | | }
   | |_^
   |
   = note: defining type: DefId(0:15 ~ ty_param_closure_outlives_from_where_clause[317d]::correct_region[0]) with substs [
               '_#1r,
               T,
           ]

note: External requirements
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:64:26
   |
LL |       with_signature(a, b, |x, y| {
   |  __________________________^
LL | |
LL | |         // See `correct_region`
LL | |         require(&x, &y)
LL | |     })
   | |_____^
   |
   = note: defining type: DefId(0:23 ~ ty_param_closure_outlives_from_where_clause[317d]::wrong_region[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 T: '_#2r

note: No external requirements
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:60:1
   |
LL | / fn wrong_region<'a, 'b, T>(a: Cell<&'a ()>, b: T)
LL | | where
LL | |     T: 'b,
LL | | {
...  |
LL | |     })
LL | | }
   | |_^
   |
   = note: defining type: DefId(0:19 ~ ty_param_closure_outlives_from_where_clause[317d]::wrong_region[0]) with substs [
               '_#1r,
               T,
           ]

error[E0309]: the parameter type `T` may not live long enough
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:64:26
   |
LL |       with_signature(a, b, |x, y| {
   |  __________________________^
LL | |
LL | |         // See `correct_region`
LL | |         require(&x, &y)
LL | |     })
   | |_____^
   |
   = help: consider adding an explicit lifetime bound `T: ReFree(DefId(0:19 ~ ty_param_closure_outlives_from_where_clause[317d]::wrong_region[0]), BrNamed(DefId(0:20 ~ ty_param_closure_outlives_from_where_clause[317d]::wrong_region[0]::'a[0]), 'a))`...

note: External requirements
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:77:26
   |
LL |       with_signature(a, b, |x, y| {
   |  __________________________^
LL | |         // See `correct_region`
LL | |         require(&x, &y)
LL | |     })
   | |_____^
   |
   = note: defining type: DefId(0:28 ~ ty_param_closure_outlives_from_where_clause[317d]::outlives_region[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: '_#3r

note: No external requirements
  --> $DIR/ty-param-closure-outlives-from-where-clause.rs:72:1
   |
LL | / fn outlives_region<'a, 'b, T>(a: Cell<&'a ()>, b: T)
LL | | where
LL | |     T: 'b,
LL | |     'b: 'a,
...  |
LL | |     })
LL | | }
   | |_^
   |
   = note: defining type: DefId(0:24 ~ ty_param_closure_outlives_from_where_clause[317d]::outlives_region[0]) with substs [
               '_#1r,
               '_#2r,
               T,
           ]

error: aborting due to 2 previous errors

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