toby-allsopp added a comment.

In https://reviews.llvm.org/D35046#802838, @EricWF wrote:

> I think the test could be improved. First could you add the test within 
> `test/SemaCXX/coroutines.cpp`? Second could you add some negative tests that 
> check the diagnostics generated when you don't provide a specialization of 
> coroutine traits (ie that the old behaviour of not including the class type 
> now produces diagnostics). Could you also add tests for const/volatile and 
> lvalue/rvalue qualified member functions?


Will do, thanks for the suggestions.



================
Comment at: lib/Sema/SemaCoroutine.cpp:85
+    if (MD->isInstance()) {
+      QualType T = MD->getThisType(S.Context);
+      Args.addArgument(TemplateArgumentLoc(
----------------
EricWF wrote:
> This seems wrong to me.
> 
> `getThisType` returns the type of the `this` parameter as specified under 
> [class.this] but according to the coroutines spec the type of the parameter 
> should be the type of the `implicit object parameter`, which is specified 
> under [[http://eel.is/c++draft/over.match.funcs#4 | (over.match.funcs) p4 ]].
Oh wow, that's a howler. I will check my tests against MSVC here. Thanks.


================
Comment at: lib/Sema/SemaCoroutine.cpp:441
+      return false;
+  }();
 
----------------
EricWF wrote:
> Huh, I've never seen lambdas used like this before but I really like it.
It's a sometimes controversial style called immediately-invoked lambda/function 
expression (IILE or IIFE). I saw other instances of it in this file (or 
possibly some other file in clang) so I'm assuming it's acceptable style.


https://reviews.llvm.org/D35046



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to