You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In bullet 5.1, the rule for evaluating await-suspend that throws an exception is
If the evaluation of await-suspend exits via an exception, the exception is caught, the coroutine is resumed, and the exception is immediately re-thrown ([except.throw]).
It says that the coroutine is resumed, however resume a coroutine will evaluate the await-resume for that co-await expression, which is stated in bullet 5.2
If the result of await-ready is true, or when the coroutine is resumed, the await-resume expression is evaluated, and its result is the result of the await-expression.
But in most major implementations, evaluating the await-suspend for an await-expression that throws an exception does not continue to evaluate await-resume for the expression. It is a bit vague in the first bullet above. Is it necessary to state that in this case, the await-resume for that expression does not evaluate anymore?
The text was updated successfully, but these errors were encountered:
Editorial meeting 2021-04-16: That's why we say "immediately"; the await-resume expression isn't actually evaluated. Amend second quote to say "... other than by rethrowing an exception from await-suspend".
In bullet 5.1, the rule for evaluating await-suspend that throws an exception is
It says that the coroutine is resumed, however resume a coroutine will evaluate the await-resume for that co-await expression, which is stated in bullet 5.2
But in most major implementations, evaluating the await-suspend for an await-expression that throws an exception does not continue to evaluate await-resume for the expression. It is a bit vague in the first bullet above. Is it necessary to state that in this case, the await-resume for that expression does not evaluate anymore?
The text was updated successfully, but these errors were encountered: