Error code E0667

impl Trait is not allowed in path parameters.

Erroneous code example:

#![allow(unused)]
fn main() {
fn some_fn(mut x: impl Iterator) -> <impl Iterator>::Item { // error!
    x.next().unwrap()
}
}

You cannot use impl Trait in path parameters. If you want something equivalent, you can do this instead:

#![allow(unused)]
fn main() {
fn some_fn<T: Iterator>(mut x: T) -> T::Item { // ok!
    x.next().unwrap()
}
}