`async let` and scoped suspension points

This is the most compelling example, IMO. I don’t see how the second proposed solution (await on scopes) would solve this problem. Which means…

I think that this kind of solution is the only one that is really workable. When your principles don’t fit reality, sometimes you need to change your principles.

However, I do feel that, as written, it is probably over-generalising. Most developers won’t understand/remember what an “async statement or declaration” is - does it mean calling or declaring an async function? What about the async global function? DispatchQueue.async? Any of the other hundreds of APIs in 3rd-party libraries which have “async” somewhere in the name?

The word ‘async’ is used so broadly that it is probably unwise to attach this kind of specific meaning to it.

3 Likes