cor3ntin added inline comments.

================
Comment at: clang/lib/Sema/SemaConcept.cpp:722
+        const_cast<CXXMethodDecl *>(cast<CXXMethodDecl>(FD)));
+    // Captures are not checked from within the lambda.
+    LSI->AfterParameterList = false;
----------------
shafik wrote:
> This comment does not really explain to me the effect of 
> `LSI->AfterParameterList = false;`
`AfterParameterList` affects in which context we look for captured variables. I 
will try to think of a better comment.


================
Comment at: clang/lib/Sema/SemaExpr.cpp:19754
+
+    // When evaluating some attributes (like enable_if) we might refer to a
+    // function parameter appertaining to the same declaration as that
----------------
shafik wrote:
> Why move this block of code for?
`isVariableAlreadyCapturedInScopeInfo` is kinda badly name because it will 
adjust `DeclRefType` by adding `const` as necessary.

if we capture a parameter, and then use it in a concept - which are not checked 
from within the scope of the lambda, we need to add const to it, which we can 
only do by reordering these paths. It's a bit subtle, and could do with some 
improvement as I'm not sure parameters will always be const correct in 
attributes currently. 
But I tried to do a minimal fix






Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158433/new/

https://reviews.llvm.org/D158433

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

Reply via email to