Impl method's arity disagrees with the trait.
trait Speak { fn speak(&self, msg: &str); }
impl Speak for Dog {
fn speak(&self) { println!("woof"); } // E0050: trait expects 2 params
}
Trait method signatures are contracts. Impls must match — otherwise callers using the trait would invoke a function with the wrong shape.
- Match the trait signature exactly. Add the missing parameter.
- If the impl genuinely doesn't need the parameter, accept and ignore it: fn speak(&self, _msg: &str) { println!("woof"); }.
- If the trait should grow a default that doesn't take the param, declare a different method.
- After trait refactors, search every impl Trait for for stale signatures.