Await Syntax Discussion Summary

This knowingly adds technical debt, eventual churn, and obsoletes existing documentation. In particular, I don't expect things to change in 2 years time. The same arguments will be had again and again.

For try! it was socially costly and it still made things obsolete. One notable difference here is that try! is a user space macro whereas await! cannot be. It must be implemented in the compiler which makes the technical debt that much worse.

It is not uncontroversial. await!(expr) is a prefix syntax and moreover encourages parenthesis buildup. This same form of argument can be made for expr.await; the await!(expr) form just happens to be what exists today.

I don't think many shared conclusions were drawn but it did affirm my view that postfix is readable and hard to miss, that chaining is useful, and that prefix doesn't compose well and introduces temporaries. (I have read all of the ~500 comments but I don't have it in memory)

7 Likes