rust/tests/ui/delegation/generics/free-fn-to-trait-method.stderr

89 lines
2.9 KiB
Plaintext

error[E0308]: mismatched types
--> $DIR/free-fn-to-trait-method.rs:36:23
|
LL | fn foo<U>(&self, _: U, _: T) {}
| - found this type parameter
...
LL | reuse Trait::<_>::foo::<i32> 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<U>(&self, _: U, _: T) {}
| ^^^ ----
error[E0308]: mismatched types
--> $DIR/free-fn-to-trait-method.rs:38:29
|
LL | trait Trait<T> {
| -------------- found this type parameter
...
LL | reuse <u8 as Trait<_>>::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<U>(&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<U: Clone>(&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<U: Clone>(&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`.