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> {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0195]: lifetime parameters or bounds on 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 type in trait LL | where LL | Self: 'a; | -- this bound might be missing in the impl ... LL | type Item = u32; | ^ lifetimes do not match type in trait error[E0277]: `()` is not an iterator --> $DIR/span-bug-issue-121457.rs:13:23 | LL | fn iter(&self) -> impl for<'missing> Iterator> {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `()` is not an iterator | = help: the trait `Iterator` is not implemented for `()` error: aborting due to 3 previous errors Some errors have detailed explanations: E0195, E0277, E0582. For more information about an error, try `rustc --explain E0195`.