Implement core::future::join! by ibraheemdev · Pull Request #91645 · rust-lang/rust (original) (raw)

I've seen multiple people observe, in various different contexts, that join!(a, b, c) should not implicitly include an .await; instead, it should return a future, such that join!(a, b, c).await is a concurrent equivalent of (a.await, b.await, c.await).

That would also make it equivalent to the join async function, which returns a future that requires awaiting. It seems confusing to have join(a, b).await but just join!(a, b, c) with no .await.

Similarly, futures::or! doesn't include an implicit .await.