## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Error code E0562

`impl Trait` is only allowed as a function return and argument type.

Erroneous code example:

    fn main() {
        let count_to_ten: impl Iterator<Item=usize> = 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<Item=usize> {
        0..n
    }

    fn main() {
        for i in count_to_n(10) {  // ok!
            println!("{}", i);
        }
    }

See the reference for more details on `impl Trait`.