error: future cannot be sent between threads safely
  --> $DIR/issue-70818.rs:7:38
   |
LL | fn foo<T: Send, U>(ty: T, ty1: U) -> impl Future<Output = (T, U)> + Send {
   |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ future created by async block is not `Send`
   |
note: captured value is not `Send`
  --> $DIR/issue-70818.rs:9:18
   |
LL |     async { (ty, ty1) }
   |                  ^^^ has type `U` which is not `Send`
help: consider restricting type parameter `U`
   |
LL | fn foo<T: Send, U: std::marker::Send>(ty: T, ty1: U) -> impl Future<Output = (T, U)> + Send {
   |                  +++++++++++++++++++

error: aborting due to previous error