error[E0053]: method `next` has an incompatible type for trait --> $DIR/issue-21332.rs:5:27 | LL | fn next(&mut self) -> Result { Ok(7) } | ^^^^^^^^^^^^^^^^ | | | expected enum `Option`, found enum `Result` | help: change the output type to match the trait: `Option` | = note: expected fn pointer `fn(&mut S) -> Option` found fn pointer `fn(&mut S) -> Result` error: aborting due to previous error For more information about this error, try `rustc --explain E0053`.