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 `>::A` found unit type `()` help: a method is available that returns `>::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 `::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 `::A` to `usize` | LL | fn foo(_: impl Trait, x: impl Trait) { | +++++++++++ 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 `::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 `::A` to `usize` | LL | fn bar>(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 ` 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 ` as Trait>::A` to `usize` | LL | fn foo2(x: impl Trait) { | +++++++++++ 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 `>::A` found type `{integer}` help: some methods are available that return `>::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 `>::A` to `{integer}` | LL | fn bar2>(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 `>::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 `>::A` to `usize` | LL | fn bar2>(x: T) { | +++++++++++ error[E0308]: mismatched types --> $DIR/trait-with-missing-associated-type-restriction.rs:31:9 | LL | fn baz>(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 `::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 `::A` to `usize` | LL | fn ban(x: T) where T: Trait { | +++++++++++ error: aborting due to 9 previous errors For more information about this error, try `rustc --explain E0308`.