mirror of https://github.com/rust-lang/rust
178 lines
5.9 KiB
Plaintext
178 lines
5.9 KiB
Plaintext
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:10:31
|
|
|
|
|
LL | fn funq(&self) -> Self::A {}
|
|
| ^^ expected associated type, found `()`
|
|
|
|
|
= note: expected associated type `<Self as Trait<T>>::A`
|
|
found unit type `()`
|
|
help: a method is available that returns `<Self as Trait<T>>::A`
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:8:5
|
|
|
|
|
LL | fn func(&self) -> Self::A;
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ consider calling `Trait::func`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:14:9
|
|
|
|
|
LL | qux(x.func())
|
|
| --- ^^^^^^^^ expected `usize`, found associated type
|
|
| |
|
|
| arguments to this function are incorrect
|
|
|
|
|
= note: expected type `usize`
|
|
found associated type `<impl Trait as Trait>::A`
|
|
note: function defined here
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:42:4
|
|
|
|
|
LL | fn qux(_: usize) {}
|
|
| ^^^ --------
|
|
help: consider constraining the associated type `<impl Trait as Trait>::A` to `usize`
|
|
|
|
|
LL | fn foo(_: impl Trait, x: impl Trait<A = usize>) {
|
|
| +++++++++++
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:18:9
|
|
|
|
|
LL | qux(x.func())
|
|
| --- ^^^^^^^^ expected `usize`, found associated type
|
|
| |
|
|
| arguments to this function are incorrect
|
|
|
|
|
= note: expected type `usize`
|
|
found associated type `<T as Trait>::A`
|
|
note: function defined here
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:42:4
|
|
|
|
|
LL | fn qux(_: usize) {}
|
|
| ^^^ --------
|
|
help: consider constraining the associated type `<T as Trait>::A` to `usize`
|
|
|
|
|
LL | fn bar<T: Trait<A = usize>>(x: T) {
|
|
| +++++++++++
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:22:9
|
|
|
|
|
LL | qux(x.func())
|
|
| --- ^^^^^^^^ expected `usize`, found associated type
|
|
| |
|
|
| arguments to this function are incorrect
|
|
|
|
|
= note: expected type `usize`
|
|
found associated type `<impl Trait<i32> as Trait<i32>>::A`
|
|
note: function defined here
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:42:4
|
|
|
|
|
LL | fn qux(_: usize) {}
|
|
| ^^^ --------
|
|
help: consider constraining the associated type `<impl Trait<i32> as Trait<i32>>::A` to `usize`
|
|
|
|
|
LL | fn foo2(x: impl Trait<i32, A = usize>) {
|
|
| +++++++++++
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:26:12
|
|
|
|
|
LL | x.funk(3);
|
|
| ---- ^ expected associated type, found integer
|
|
| |
|
|
| arguments to this method are incorrect
|
|
|
|
|
= note: expected associated type `<T as Trait<i32>>::A`
|
|
found type `{integer}`
|
|
help: some methods are available that return `<T as Trait<i32>>::A`
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:8:5
|
|
|
|
|
LL | fn func(&self) -> Self::A;
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ consider calling `Trait::func`
|
|
LL | fn funk(&self, _: Self::A);
|
|
LL | fn funq(&self) -> Self::A {}
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^ consider calling `Trait::funq`
|
|
note: method defined here
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:9:8
|
|
|
|
|
LL | fn funk(&self, _: Self::A);
|
|
| ^^^^
|
|
help: consider constraining the associated type `<T as Trait<i32>>::A` to `{integer}`
|
|
|
|
|
LL | fn bar2<T: Trait<i32, A = {integer}>>(x: T) {
|
|
| +++++++++++++++
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:27:9
|
|
|
|
|
LL | qux(x.func())
|
|
| --- ^^^^^^^^ expected `usize`, found associated type
|
|
| |
|
|
| arguments to this function are incorrect
|
|
|
|
|
= note: expected type `usize`
|
|
found associated type `<T as Trait<i32>>::A`
|
|
note: function defined here
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:42:4
|
|
|
|
|
LL | fn qux(_: usize) {}
|
|
| ^^^ --------
|
|
help: consider constraining the associated type `<T as Trait<i32>>::A` to `usize`
|
|
|
|
|
LL | fn bar2<T: Trait<i32, A = usize>>(x: T) {
|
|
| +++++++++++
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:31:9
|
|
|
|
|
LL | fn baz<D: std::fmt::Debug, T: Trait<A = D>>(x: T) {
|
|
| - found this type parameter
|
|
LL | qux(x.func())
|
|
| --- ^^^^^^^^ expected `usize`, found type parameter `D`
|
|
| |
|
|
| arguments to this function are incorrect
|
|
|
|
|
= note: expected type `usize`
|
|
found type parameter `D`
|
|
note: function defined here
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:42:4
|
|
|
|
|
LL | fn qux(_: usize) {}
|
|
| ^^^ --------
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:35:9
|
|
|
|
|
LL | qux(x.func())
|
|
| --- ^^^^^^^^ expected `usize`, found `()`
|
|
| |
|
|
| arguments to this function are incorrect
|
|
|
|
|
note: function defined here
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:42:4
|
|
|
|
|
LL | fn qux(_: usize) {}
|
|
| ^^^ --------
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:39:9
|
|
|
|
|
LL | qux(x.func())
|
|
| --- ^^^^^^^^ expected `usize`, found associated type
|
|
| |
|
|
| arguments to this function are incorrect
|
|
|
|
|
= note: expected type `usize`
|
|
found associated type `<T as Trait>::A`
|
|
note: function defined here
|
|
--> $DIR/trait-with-missing-associated-type-restriction.rs:42:4
|
|
|
|
|
LL | fn qux(_: usize) {}
|
|
| ^^^ --------
|
|
help: consider constraining the associated type `<T as Trait>::A` to `usize`
|
|
|
|
|
LL | fn ban<T>(x: T) where T: Trait<A = usize> {
|
|
| +++++++++++
|
|
|
|
error: aborting due to 9 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0308`.
|