error[E0277]: the trait bound `impl Foo: Foo` is not satisfied --> $DIR/return-dont-satisfy-bounds.rs:13:34 | LL | fn foo>(self) -> impl Foo { | ^^^^^^^^^^^^ the trait `Foo` is not implemented for `impl Foo` | = help: the trait `Foo` is implemented for `Bar` note: required by a bound in `Foo::{opaque#0}` --> $DIR/return-dont-satisfy-bounds.rs:7:30 | LL | fn foo(self) -> impl Foo; | ^^^^^^ required by this bound in `Foo::{opaque#0}` error: aborting due to previous error For more information about this error, try `rustc --explain E0277`.