clang 19.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
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:
Inheritance graph
[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< std::pair< const Expr *, Detail >, 4 > Details
 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.
 

Detailed Description

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

Definition at line 35 of file ASTConcept.h.

Member Typedef Documentation

◆ Detail

Definition at line 51 of file ASTConcept.h.

◆ SubstitutionDiagnostic

Definition at line 50 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 45 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, ID, 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 83 of file ASTConcept.cpp.

References clang::C.

Member Data Documentation

◆ ContainsErrors

bool clang::ConstraintSatisfaction::ContainsErrors = false

Definition at line 54 of file ASTConcept.h.

Referenced by calculateConstraintSatisfaction(), and readConstraintSatisfaction().

◆ Details

llvm::SmallVector<std::pair<const Expr *, Detail>, 4> clang::ConstraintSatisfaction::Details

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.

Definition at line 60 of file ASTConcept.h.

Referenced by clang::ASTConstraintSatisfaction::ASTConstraintSatisfaction(), calculateConstraintSatisfaction(), clang::ASTConstraintSatisfaction::Create(), clang::Sema::DiagnoseUnsatisfiedConstraint(), HasSubstitutionFailure(), and readConstraintSatisfaction().

◆ IsSatisfied

bool clang::ConstraintSatisfaction::IsSatisfied = false

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