error[E0277]: the trait bound `B: Bar` is not satisfied --> $DIR/issue-90400-2.rs:25:9 | LL | MyBaz(bar) | ^^^^^^^^^^ the trait `Bar` is not implemented for `B` | note: required for `MyBaz` to implement `Baz` --> $DIR/issue-90400-2.rs:30:14 | LL | impl Baz for MyBaz { | --- ^^^ ^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in an opaque type --> $DIR/issue-90400-2.rs:22:26 | LL | type FooFn = impl Baz; | ^^^ note: this definition site has more where clauses than the opaque type --> $DIR/issue-90400-2.rs:24:5 | LL | fn foo(&self, bar: B) -> Self::FooFn { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider restricting type parameter `B` with trait `Bar` | LL | type FooFn = impl Baz; | +++++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0277`.