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[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> {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no` 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 `()` warning: impl trait in impl method signature does not match trait method signature --> $DIR/span-bug-issue-121457.rs:13:51 | LL | fn iter(&self) -> impl Iterator; | ------------- return type from trait method defined here ... LL | fn iter(&self) -> impl for<'missing> Iterator> {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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 for more information = note: `#[warn(refining_impl_trait_reachable)]` on by default help: replace the return type so that it matches the trait | LL | fn iter(&self) -> impl Iterator {} | ~~~~~~~~~~~~~ error: aborting due to 4 previous errors; 1 warning emitted Some errors have detailed explanations: E0195, E0277, E0582. For more information about an error, try `rustc --explain E0195`.