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

Abstract return types (written impl Trait for some trait Trait) are only allowed as function and inherent impl return types.

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 only appears in return-type position.

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 RFC 1522 for more details.