error[E0277]: `Foo` cannot be sent between threads safely --> $DIR/issue-83857-ub.rs:22:38 | LL | fn generic(v: Foo, f: fn( as WithAssoc>::Output) -> i32) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Foo` cannot be sent between threads safely | = help: the trait `Send` is not implemented for `Foo`, which is required by `Foo: WithAssoc` note: required for `Foo` to implement `WithAssoc` --> $DIR/issue-83857-ub.rs:15:15 | LL | impl WithAssoc for T { | ---- ^^^^^^^^^ ^ | | | unsatisfied trait bound introduced here help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement | LL | fn generic(v: Foo, f: fn( as WithAssoc>::Output) -> i32) where Foo: Send { | +++++++++++++++++++++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0277`.