error[E0053]: method `bar` has an incompatible type for trait --> $DIR/specialization-broken.rs:19:22 | LL | default impl Foo for U | - 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:12: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:19:5 | LL | fn bar(&self) -> U { | ^^^^^^^^^^^^^^^^^^ | = note: specialization behaves in inconsistent and surprising ways with `#![feature(return_position_impl_trait_in_trait)]`, and for now is disallowed error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0053`.