error[E0195]: lifetime parameters or bounds on associated type `Item` do not match the trait declaration
  --> $DIR/span-bug-issue-121457.rs:10:14
   |
LL |     type Item<'a>
   |              ---- lifetimes in impl do not match this associated type in trait
LL |     where
LL |         Self: 'a;
   |               -- this bound might be missing in the impl
...
LL |     type Item = u32;
   |              ^ lifetimes do not match associated type in trait

error[E0582]: binding for associated type `Item` references lifetime `'missing`, which does not appear in the trait input types
  --> $DIR/span-bug-issue-121457.rs:13:51
   |
LL |     fn iter(&self) -> impl for<'missing> Iterator<Item = Self::Item<'missing>> {}
   |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0582]: binding for associated type `Item` references lifetime `'missing`, which does not appear in the trait input types
  --> $DIR/span-bug-issue-121457.rs:13:51
   |
LL |     fn iter(&self) -> impl for<'missing> Iterator<Item = Self::Item<'missing>> {}
   |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

error[E0277]: `()` is not an iterator
  --> $DIR/span-bug-issue-121457.rs:13:23
   |
LL |     fn iter(&self) -> impl for<'missing> Iterator<Item = Self::Item<'missing>> {}
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `()` is not an iterator
   |
   = help: the trait `Iterator` is not implemented for `()`

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0195, E0277, E0582.
For more information about an error, try `rustc --explain E0195`.
