[libcxx-commits] [clang] [libcxx] [Clang] Normalize constraints before checking for satisfaction (PR #141776)
Erich Keane via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Sep 18 11:14:50 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> *>;
----------------
erichkeane wrote:
This probably just needs to be a struct type. The union + pair + 2 different things results in some pretty unreadable code below.
https://github.com/llvm/llvm-project/pull/141776
More information about the libcxx-commits
mailing list