error[E0412]: cannot find type `Missing` in this scope
  --> $DIR/issue-110157.rs:6:12
   |
LL |     F: Fn(&Missing) -> Result<I, ()>,
   |            ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Missing` in this scope
  --> $DIR/issue-110157.rs:8:24
   |
LL |     I: Iterator<Item = Missing>,
   |                        ^^^^^^^ 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<Item = Missing>,
   |        ------------------------ unsatisfied trait bound introduced here

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0283, E0412.
For more information about an error, try `rustc --explain E0283`.
