error[E0053]: method `bar` has an incompatible type for trait --> $DIR/specialization-broken.rs:15:22 | LL | default impl Foo for U | - found this type parameter ... LL | fn bar(&self) -> U { | ^ | | | expected associated type, found type parameter `U` | help: change the output type to match the trait: `impl Sized` | note: type in trait --> $DIR/specialization-broken.rs:8:22 | LL | fn bar(&self) -> impl Sized; | ^^^^^^^^^^ = note: expected signature `fn(&U) -> impl Sized` found signature `fn(&U) -> U` error: method with return-position `impl Trait` in trait cannot be specialized --> $DIR/specialization-broken.rs:15:5 | LL | fn bar(&self) -> U { | ^^^^^^^^^^^^^^^^^^ | = note: specialization behaves in inconsistent and surprising ways with return position `impl Trait` in traits, and for now is disallowed error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0053`.