1 error[E0478]: lifetime bound not satisfied
2 --> $DIR/closure_wf_outlives.rs:14:27
4 LL | type Opaque<'a, 'b> = impl Sized + 'a + 'b;
7 note: lifetime parameter instantiated with the lifetime `'a` as defined here
8 --> $DIR/closure_wf_outlives.rs:14:17
10 LL | type Opaque<'a, 'b> = impl Sized + 'a + 'b;
12 note: but lifetime parameter must outlive the lifetime `'b` as defined here
13 --> $DIR/closure_wf_outlives.rs:14:21
15 LL | type Opaque<'a, 'b> = impl Sized + 'a + 'b;
18 error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
19 --> $DIR/closure_wf_outlives.rs:27:27
21 LL | type Opaque<'a, 'b> = impl Sized + 'a + 'b;
22 | ^^^^^^^^^^^^^^^^^^^^
24 note: first, the lifetime cannot outlive the lifetime `'a` as defined here...
25 --> $DIR/closure_wf_outlives.rs:27:17
27 LL | type Opaque<'a, 'b> = impl Sized + 'a + 'b;
29 note: ...so that the declared lifetime parameter bounds are satisfied
30 --> $DIR/closure_wf_outlives.rs:27:27
32 LL | type Opaque<'a, 'b> = impl Sized + 'a + 'b;
33 | ^^^^^^^^^^^^^^^^^^^^
34 note: but, the lifetime must be valid for the lifetime `'b` as defined here...
35 --> $DIR/closure_wf_outlives.rs:27:21
37 LL | type Opaque<'a, 'b> = impl Sized + 'a + 'b;
39 note: ...so that the declared lifetime parameter bounds are satisfied
40 --> $DIR/closure_wf_outlives.rs:27:27
42 LL | type Opaque<'a, 'b> = impl Sized + 'a + 'b;
43 | ^^^^^^^^^^^^^^^^^^^^
45 error[E0310]: the parameter type `T` may not live long enough
46 --> $DIR/closure_wf_outlives.rs:54:22
48 LL | type Opaque<T> = impl Sized;
49 | ^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds...
51 note: ...that is required by this bound
52 --> $DIR/closure_wf_outlives.rs:59:12
56 help: consider adding an explicit lifetime bound...
58 LL | type Opaque<T: 'static> = impl Sized;
61 error: aborting due to 3 previous errors
63 Some errors have detailed explanations: E0310, E0478, E0495.
64 For more information about an error, try `rustc --explain E0310`.