error[E0308]: mismatched types --> $DIR/free-fn-to-trait-method.rs:36:23 | LL | fn foo(&self, _: U, _: T) {} | - found this type parameter ... LL | reuse Trait::<_>::foo:: as generic_arguments1; | ^^^ | | | expected `i32`, found type parameter `U` | arguments to this function are incorrect | = note: expected type `i32` found type parameter `U` note: method defined here --> $DIR/free-fn-to-trait-method.rs:31:12 | LL | fn foo(&self, _: U, _: T) {} | ^^^ ---- error[E0308]: mismatched types --> $DIR/free-fn-to-trait-method.rs:38:29 | LL | trait Trait { | -------------- found this type parameter ... LL | reuse >::foo as generic_arguments2; | ^^^ | | | expected `&u8`, found `&Self` | arguments to this function are incorrect | = note: expected reference `&u8` found reference `&Self` note: method defined here --> $DIR/free-fn-to-trait-method.rs:31:12 | LL | fn foo(&self, _: U, _: T) {} | ^^^ ----- error[E0277]: the trait bound `S: Copy` is not satisfied --> $DIR/free-fn-to-trait-method.rs:53:18 | LL | bounds(&0u8, S, U); | ------ ^ the trait `Copy` is not implemented for `S` | | | required by a bound introduced by this call | note: required by a bound in `bounds` --> $DIR/free-fn-to-trait-method.rs:23:54 | LL | fn foo(&self, t: T, u: U) where T: Copy {} | ^^^^ required by this bound in `bounds` ... LL | reuse bounds::Trait::foo as bounds; | ------ required by a bound in this function help: consider annotating `S` with `#[derive(Copy)]` | LL + #[derive(Copy)] LL | struct S; | error[E0277]: the trait bound `U: Clone` is not satisfied --> $DIR/free-fn-to-trait-method.rs:53:21 | LL | bounds(&0u8, S, U); | ------ ^ the trait `Clone` is not implemented for `U` | | | required by a bound introduced by this call | note: required by a bound in `bounds` --> $DIR/free-fn-to-trait-method.rs:23:19 | LL | fn foo(&self, t: T, u: U) where T: Copy {} | ^^^^^ required by this bound in `bounds` ... LL | reuse bounds::Trait::foo as bounds; | ------ required by a bound in this function help: consider annotating `U` with `#[derive(Clone)]` | LL + #[derive(Clone)] LL | struct U; | error: aborting due to 4 previous errors Some errors have detailed explanations: E0277, E0308. For more information about an error, try `rustc --explain E0277`.