error[E0700]: hidden type for `impl Trait<'y>` captures lifetime that does not appear in bounds --> $DIR/region-escape-via-bound.rs:17:5 | LL | fn foo<'x, 'y>(x: Cell<&'x u32>) -> impl Trait<'y> | -- -------------- opaque type defined here | | | hidden type `Cell<&'x u32>` captures the lifetime `'x` as defined here ... LL | x | ^ | help: add a `use<...>` bound to explicitly capture `'x` | LL | fn foo<'x, 'y>(x: Cell<&'x u32>) -> impl Trait<'y> + use<'y, 'x> | +++++++++++++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0700`.