[PATCH] D134128: Resubmit an implemention for constrained template template parameters [P0857R0 Part B]

Liming Liu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 12 21:57:16 PDT 2022


lime added inline comments.


================
Comment at: clang/lib/Sema/SemaConcept.cpp:590
 
+// FIXME: may be incomplete
+static unsigned CalculateTemplateDepthForConstraints(const Expr *Constr) {
----------------
erichkeane wrote:
> I'd like some sort of assert in the case where you don't know what to do here.  We need to collect all of these cases best we can in advance.
> 
> I'd suggest ALSO running libcxx tests against this once you have the assert in place, which should help.
I'm afraid that assertions would abort Clang on many code. This function serves as a check for `AdjustConstraintDepth`, and this class looks like just handling `TemplateTypeParmType`. The function has already handled `TemplateTypeParmType`. And determining cases that should trigger the assertions also involves the subsumption of atomic constraints. It is needed to check the depth according to `TemplateTypeParmType`, because the identity of `QualType` involves the depth, and then effects the subsumption. There will be some works to determine which cases are the same, and leave assertions for the cases. This kind of works is highly related to the depth and the subsumption, while I think it is less related to template template parameters.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D134128



More information about the cfe-commits mailing list