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: to declare that `impl Trait<'y>` captures `'x`, you can add an explicit `'x` lifetime bound | LL | fn foo<'x, 'y>(x: Cell<&'x u32>) -> impl Trait<'y> + 'x | ++++ error: aborting due to previous error For more information about this error, try `rustc --explain E0700`.