error[E0643]: method `foo` has incompatible signature for trait --> $DIR/impl-generic-mismatch.rs:13:12 | LL | fn foo(&self, _: &impl Debug); | ---------- declaration in trait here ... LL | fn foo(&self, _: &U) { } | ^ expected `impl Trait`, found generic parameter | help: try removing the generic parameter and using `impl Trait` instead | LL | fn foo(&self, _: &impl Debug) { } | -- ^^^^^^^^^^ error[E0643]: method `bar` has incompatible signature for trait --> $DIR/impl-generic-mismatch.rs:22:23 | LL | fn bar(&self, _: &U); | - declaration in trait here ... LL | fn bar(&self, _: &impl Debug) { } | ^^^^^^^^^^ expected generic parameter, found `impl Trait` | help: try changing the `impl Trait` argument to a generic parameter | LL | fn bar(&self, _: &U) { } | ^^^^^^^^^^ ^ error[E0643]: method `hash` has incompatible signature for trait --> $DIR/impl-generic-mismatch.rs:33:33 | LL | fn hash(&self, hasher: &mut impl Hasher) {} | ^^^^^^^^^^^ expected generic parameter, found `impl Trait` | ::: $SRC_DIR/libcore/hash/mod.rs:LL:COL | LL | fn hash(&self, state: &mut H); | - declaration in trait here error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0643`.