Error code E0053

The parameters of any trait method must match between a trait implementation and the trait definition.

Erroneous code example:

#![allow(unused)]
fn main() {
trait Foo {
    fn foo(x: u16);
    fn bar(&self);
}

struct Bar;

impl Foo for Bar {
    // error, expected u16, found i16
    fn foo(x: i16) { }

    // error, types differ in mutability
    fn bar(&mut self) { }
}
}