Error code E0643
This error indicates that there is a mismatch between generic parameters and impl Trait parameters in a trait declaration versus its impl.
#![allow(unused)] fn main() { trait Foo { fn foo(&self, _: &impl Iterator); } impl Foo for () { fn foo<U: Iterator>(&self, _: &U) { } // error method `foo` has incompatible // signature for trait } }