| ▲ | aabhay 6 hours ago | |
It makes it easier to write recursive async functions. It makes it easier for async functions to borrow rather than clone from their outer scope. All really awesome, non controversial and ergonomic things. | ||
| ▲ | simonask an hour ago | parent [-] | |
Wait, how does it actually change the recursive async story? The problem today is that the compiler-synthesized struct implementing `Future` for each async function cannot contain an instance of itself without boxing, because it would create a type of infinite size. That's a separate problem that's also hard to solve nicely, because the call tree might be deep, and deciding where to cut (using Box::pin) is non-trivial. | ||