[libcxx-commits] [clang] [libcxx] [Clang] Normalize constraints before checking for satisfaction (PR #141776)

Corentin Jabot via libcxx-commits libcxx-commits at lists.llvm.org
Fri Sep 19 02:57:48 PDT 2025


================
@@ -28,10 +28,19 @@ namespace clang {
 
 class ConceptDecl;
 class TemplateDecl;
+class ConceptReference;
 class Expr;
 class NamedDecl;
 struct PrintingPolicy;
 
+/// Pairs of unsatisfied atomic constraint expressions along with the
+/// substituted constraint expr, if the template arguments could be
+/// substituted into them, or a diagnostic if substitution resulted in
+/// an invalid expression.
+using UnsatisfiedConstraintRecord =
+    llvm::PointerUnion<const Expr *, const ConceptReference *,
+                       std::pair<SourceLocation, StringRef> *>;
----------------
cor3ntin wrote:

I cleaned that up to hopefully make it more obvious what is going on - it is a union of 3 pointers - the pair is pre-existing though

https://github.com/llvm/llvm-project/pull/141776


More information about the libcxx-commits mailing list