[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.
Richard Smith via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun May 28 12:44:38 PDT 2017
rsmith added inline comments.
Comment at: include/clang/Basic/DiagnosticSemaKinds.td:8977-8980
+ "the return type of 'await_suspend' is required to be 'void' or 'bool' (have %0)"
+def note_await_ready_no_bool_conversion : Note<
+ "the return type of 'await_ready' is required to be contextually convertible to 'bool'"
I would drop the leading 'the' from both of these diagnostics for consistency with our normal terse sentence fragment style.
Comment at: lib/Sema/SemaCoroutine.cpp:393
+ // - await-suspend is the expression e.await_suspend(h), which shall be
+ // a prvalue of type void or bool.
+ QualType RetType = AwaitSuspend->getType();
It looks like you're not checking the 'prvalue' part of this.
More information about the cfe-commits