clang 22.0.0git
clang::ConstraintSatisfaction Class Reference

The result of a constraint satisfaction check, containing the necessary information to diagnose an unsatisfied constraint. More...

#include "clang/AST/ASTConcept.h"

Inheritance diagram for clang::ConstraintSatisfaction:
[legend]

Public Types

using SubstitutionDiagnostic = std::pair<SourceLocation, StringRef>
using Detail = llvm::PointerUnion<Expr *, SubstitutionDiagnostic *>

Public Member Functions

 ConstraintSatisfaction ()=default
 ConstraintSatisfaction (const NamedDecl *ConstraintOwner, ArrayRef< TemplateArgument > TemplateArgs)
void Profile (llvm::FoldingSetNodeID &ID, const ASTContext &C)
bool HasSubstitutionFailure ()

Static Public Member Functions

static void Profile (llvm::FoldingSetNodeID &ID, const ASTContext &C, const NamedDecl *ConstraintOwner, ArrayRef< TemplateArgument > TemplateArgs)

Public Attributes

bool IsSatisfied = false
bool ContainsErrors = false
llvm::SmallVector< Detail, 4 > Details
 The substituted constraint expr, if the template arguments could be substituted into them, or a diagnostic if substitution resulted in an invalid expression.

Detailed Description

The result of a constraint satisfaction check, containing the necessary information to diagnose an unsatisfied constraint.

Definition at line 37 of file ASTConcept.h.

Member Typedef Documentation

◆ Detail

Definition at line 52 of file ASTConcept.h.

◆ SubstitutionDiagnostic

Definition at line 51 of file ASTConcept.h.

Constructor & Destructor Documentation

◆ ConstraintSatisfaction() [1/2]

clang::ConstraintSatisfaction::ConstraintSatisfaction ( )
default

◆ ConstraintSatisfaction() [2/2]

clang::ConstraintSatisfaction::ConstraintSatisfaction ( const NamedDecl * ConstraintOwner,
ArrayRef< TemplateArgument > TemplateArgs )
inline

Definition at line 47 of file ASTConcept.h.

Member Function Documentation

◆ HasSubstitutionFailure()

bool clang::ConstraintSatisfaction::HasSubstitutionFailure ( )
inline

Definition at line 70 of file ASTConcept.h.

References Details.

◆ Profile() [1/2]

void clang::ConstraintSatisfaction::Profile ( llvm::FoldingSetNodeID & ID,
const ASTContext & C )
inline

Definition at line 62 of file ASTConcept.h.

References clang::C, and Profile().

Referenced by clang::Sema::CheckConstraintSatisfaction(), and Profile().

◆ Profile() [2/2]

void ConstraintSatisfaction::Profile ( llvm::FoldingSetNodeID & ID,
const ASTContext & C,
const NamedDecl * ConstraintOwner,
ArrayRef< TemplateArgument > TemplateArgs )
static

Definition at line 77 of file ASTConcept.cpp.

References clang::C.

Member Data Documentation

◆ ContainsErrors

◆ Details

◆ IsSatisfied


The documentation for this class was generated from the following files: