`impl Trait` is only allowed as a function return and argument type. Erroneous code example: ```compile_fail,E0562 fn main() { let count_to_ten: impl Iterator = 0..10; // error: `impl Trait` not allowed outside of function and inherent method // return types for i in count_to_ten { println!("{}", i); } } ``` Make sure `impl Trait` appears in a function signature. ``` fn count_to_n(n: usize) -> impl Iterator { 0..n } fn main() { for i in count_to_n(10) { // ok! println!("{}", i); } } ``` See the [reference] for more details on `impl Trait`. [reference]: https://doc.rust-lang.org/stable/reference/types/impl-trait.html