error[E0412]: cannot find type `Missing` in this scope --> $DIR/issue-110157.rs:7:12 | LL | F: Fn(&Missing) -> Result, | ^^^^^^^ not found in this scope error[E0412]: cannot find type `Missing` in this scope --> $DIR/issue-110157.rs:9:24 | LL | I: Iterator, | ^^^^^^^ not found in this scope error[E0283]: type annotations needed --> $DIR/issue-110157.rs:3:31 | LL | impl<'tcx, F, I> Iterator for NeedsDropTypes<'tcx, F> | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type for type parameter `I` | = note: cannot satisfy `_: Iterator` note: required for `NeedsDropTypes<'tcx, F>` to implement `Iterator` --> $DIR/issue-110157.rs:3:18 | LL | impl<'tcx, F, I> Iterator for NeedsDropTypes<'tcx, F> | ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ... LL | I: Iterator, | ------------------------ unsatisfied trait bound introduced here error[E0046]: not all trait items implemented, missing: `Item`, `next` --> $DIR/issue-110157.rs:3:1 | LL | / impl<'tcx, F, I> Iterator for NeedsDropTypes<'tcx, F> LL | | LL | | LL | | where LL | | F: Fn(&Missing) -> Result, LL | | LL | | I: Iterator, | |________________________________^ missing `Item`, `next` in implementation | = help: implement the missing item: `type Item = /* Type */;` = help: implement the missing item: `fn next(&mut self) -> Option<::Item> { todo!() }` error: aborting due to 4 previous errors Some errors have detailed explanations: E0046, E0283, E0412. For more information about an error, try `rustc --explain E0046`.