error[E0053]: method `foo` has an incompatible type for trait --> $DIR/issue-35869.rs:11:15 | LL | fn foo(_: fn(u8) -> ()); | ------------ type in trait ... LL | fn foo(_: fn(u16) -> ()) {} | ^^^^^^^^^^^^^ expected `u8`, found `u16` | = note: expected fn pointer `fn(fn(u8))` found fn pointer `fn(fn(u16))` error[E0053]: method `bar` has an incompatible type for trait --> $DIR/issue-35869.rs:13:15 | LL | fn bar(_: Option); | ---------- type in trait ... LL | fn bar(_: Option) {} | ^^^^^^^^^^^ expected `u8`, found `u16` | = note: expected fn pointer `fn(Option)` found fn pointer `fn(Option)` error[E0053]: method `baz` has an incompatible type for trait --> $DIR/issue-35869.rs:15:15 | LL | fn baz(_: (u8, u16)); | --------- type in trait ... LL | fn baz(_: (u16, u16)) {} | ^^^^^^^^^^ expected `u8`, found `u16` | = note: expected fn pointer `fn((u8, _))` found fn pointer `fn((u16, _))` error[E0053]: method `qux` has an incompatible type for trait --> $DIR/issue-35869.rs:17:17 | LL | fn qux() -> u8; | -- type in trait ... LL | fn qux() -> u16 { 5u16 } | ^^^ expected `u8`, found `u16` | = note: expected fn pointer `fn() -> u8` found fn pointer `fn() -> u16` error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0053`.