error[E0308]: mismatched types --> $DIR/associated-types-eq-3.rs:33:18 | LL | let _: Bar = x.boo(); | ^^^^^^^ expected struct `Bar`, found associated type | = note: expected type `Bar` found type `::A` error[E0271]: type mismatch resolving `::A == Bar` --> $DIR/associated-types-eq-3.rs:48:5 | LL | foo1(a); | ^^^^ expected usize, found struct `Bar` | = note: expected type `usize` found type `Bar` note: required by `foo1` --> $DIR/associated-types-eq-3.rs:28:1 | LL | fn foo1>(x: I) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0271]: type mismatch resolving `::A == Bar` --> $DIR/associated-types-eq-3.rs:51: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 occurred: E0271, E0308. For more information about an error, try `rustc --explain E0271`.