erichkeane added a comment.

In D133052#3896663 <https://reviews.llvm.org/D133052#3896663>, @luken-google 
wrote:

> Because of the change to `InsertNode` to not assert on already cached 
> concepts this patch now works. If I try to catch the recursive expansion on a 
> higher level the test in `concepts.cpp` for 2-level concept expansion fails. 
> There are some finite recursive use cases for template expansion.

Note that I'm still working on the recursive concept-check (see 
https://reviews.llvm.org/D136975), and will probably get this part fixed in the 
next day or two.

I don't know that we can really use the Sema::InstantiatingTemplate bit, as 
that doesn't really work in cases where we are forming a recovery expression, 
or the concept caused us to instantiate the same concepts separately somewhere 
else (like when evaluating the constexprness of a move constructor is the other 
good example).

Additionally, I think any such check needs to happen at the 'expression' level 
itself, rather than here at the function.

My biggest problem at the moment is making sure it fails overlaod resolution 
entirely, rather than just the single candidate (which this has the same 
problem I believe).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D133052

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

Reply via email to