error[E0276]: impl has stricter requirements than trait
  --> $DIR/bad-item-bound-within-rpitit.rs:15:13
   |
LL |     type Item<'a>
   |     ------------- definition of `Item` from trait
...
LL |         'b: 'a;
   |             ^^ impl has extra requirement `'b: 'a`
   |
help: copy the `where` clause predicates from the trait
   |
LL -     where
LL -         'b: 'a;
LL +     where Self: 'b;
   |

warning: impl trait in impl method signature does not match trait method signature
  --> $DIR/bad-item-bound-within-rpitit.rs:18:28
   |
LL |     fn iter(&self) -> impl '_ + Iterator<Item = Self::Item<'_>>;
   |                       ----------------------------------------- return type from trait method defined here
...
LL |     fn iter(&self) -> impl 'a + Iterator<Item = I::Item<'a>> {
   |                            ^^ this bound is stronger than that defined on the trait
   |
   = note: add `#[allow(refining_impl_trait)]` if it is intended for this to be part of the public API of this crate
   = note: we are soliciting feedback, see issue #121718 <https://github.com/rust-lang/rust/issues/121718> for more information
   = note: `#[warn(refining_impl_trait_reachable)]` (part of `#[warn(refining_impl_trait)]`) on by default
help: replace the return type so that it matches the trait
   |
LL -     fn iter(&self) -> impl 'a + Iterator<Item = I::Item<'a>> {
LL +     fn iter(&self) -> impl Iterator<Item = <Self as Iterable>::Item<'_>> + '_ {
   |

error: aborting due to 1 previous error; 1 warning emitted

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