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