error[E0053]: method `foo` has an incompatible type for trait --> $DIR/issue-35869.rs:23:15 | 14 | fn foo(_: fn(u8) -> ()); | ------------ type in trait ... 23 | fn foo(_: fn(u16) -> ()) {} | ^^^^^^^^^^^^^ expected u8, found u16 | = note: expected type `fn(fn(u8))` found type `fn(fn(u16))` error[E0053]: method `bar` has an incompatible type for trait --> $DIR/issue-35869.rs:25:15 | 15 | fn bar(_: Option); | ---------- type in trait ... 25 | fn bar(_: Option) {} | ^^^^^^^^^^^ expected u8, found u16 | = note: expected type `fn(std::option::Option)` found type `fn(std::option::Option)` error[E0053]: method `baz` has an incompatible type for trait --> $DIR/issue-35869.rs:27:15 | 16 | fn baz(_: (u8, u16)); | --------- type in trait ... 27 | fn baz(_: (u16, u16)) {} | ^^^^^^^^^^ expected u8, found u16 | = note: expected type `fn((u8, u16))` found type `fn((u16, u16))` error[E0053]: method `qux` has an incompatible type for trait --> $DIR/issue-35869.rs:29:17 | 17 | fn qux() -> u8; | -- type in trait ... 29 | fn qux() -> u16 { 5u16 } | ^^^ expected u8, found u16 | = note: expected type `fn() -> u8` found type `fn() -> u16` error: aborting due to 4 previous errors