error[E0308]: mismatched types --> $DIR/associated-types-eq-3.rs:23:18 | LL | let _: Bar = x.boo(); | ^^^^^^^ expected struct `Bar`, found associated type | = note: expected type `Bar` found type `::A` = note: consider constraining the associated type `::A` to `Bar` = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html error[E0271]: type mismatch resolving `::A == Bar` --> $DIR/associated-types-eq-3.rs:38:5 | LL | fn foo1>(x: I) { | ---------------------------- required by `foo1` ... LL | foo1(a); | ^^^^ expected usize, found struct `Bar` | = note: expected type `usize` found type `Bar` error[E0271]: type mismatch resolving `::A == Bar` --> $DIR/associated-types-eq-3.rs:41:9 | LL | baz(&a); | ^^ expected usize, found struct `Bar` | = note: expected type `usize` found type `Bar` = note: required for the cast to the object type `dyn Foo` error: aborting due to 3 previous errors Some errors have detailed explanations: E0271, E0308. For more information about an error, try `rustc --explain E0271`.