error[E0053]: method `foo` has an incompatible type for trait --> $DIR/trait-impl-fn-incompatibility.rs:9:15 | LL | fn foo(x: i16) { } | ^^^ | | | expected `u16`, found `i16` | help: change the parameter type to match the trait: `u16` | note: type in trait --> $DIR/trait-impl-fn-incompatibility.rs:2:15 | LL | fn foo(x: u16); | ^^^ = note: expected signature `fn(u16)` found signature `fn(i16)` error[E0053]: method `bar` has an incompatible type for trait --> $DIR/trait-impl-fn-incompatibility.rs:10:28 | LL | fn bar(&mut self, bar: &Bar) { } | ^^^^ | | | types differ in mutability | help: change the parameter type to match the trait: `&mut Bar` | note: type in trait --> $DIR/trait-impl-fn-incompatibility.rs:3:28 | LL | fn bar(&mut self, bar: &mut Bar); | ^^^^^^^^ = note: expected signature `fn(&mut Bar, &mut Bar)` found signature `fn(&mut Bar, &Bar)` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0053`.