| 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) { |
| | - 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`. |