clang 22.0.0git
|
The result of a constraint satisfaction check, containing the necessary information to diagnose an unsatisfied constraint. More...
#include "clang/AST/ASTConcept.h"
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. |
The result of a constraint satisfaction check, containing the necessary information to diagnose an unsatisfied constraint.
Definition at line 37 of file ASTConcept.h.
using clang::ConstraintSatisfaction::Detail = llvm::PointerUnion<Expr *, SubstitutionDiagnostic *> |
Definition at line 52 of file ASTConcept.h.
using clang::ConstraintSatisfaction::SubstitutionDiagnostic = std::pair<SourceLocation, StringRef> |
Definition at line 51 of file ASTConcept.h.
|
default |
|
inline |
Definition at line 47 of file ASTConcept.h.
|
inline |
Definition at line 70 of file ASTConcept.h.
References Details.
|
inline |
Definition at line 62 of file ASTConcept.h.
References clang::C, and Profile().
Referenced by clang::Sema::CheckConstraintSatisfaction(), and Profile().
|
static |
Definition at line 77 of file ASTConcept.cpp.
References clang::C.
Definition at line 55 of file ASTConcept.h.
Referenced by calculateConstraintSatisfaction(), EvaluateAtomicConstraint(), clang::ASTNodeImporter::ImportConstraintSatisfaction(), and readConstraintSatisfaction().
llvm::SmallVector<Detail, 4> clang::ConstraintSatisfaction::Details |
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(), calculateConstraintSatisfaction(), calculateConstraintSatisfaction(), clang::ASTConstraintSatisfaction::Create(), clang::Sema::DiagnoseUnsatisfiedConstraint(), EvaluateAtomicConstraint(), HasSubstitutionFailure(), clang::ASTNodeImporter::ImportConstraintSatisfaction(), and readConstraintSatisfaction().
Definition at line 54 of file ASTConcept.h.
Referenced by clang::Sema::ActOnExplicitInstantiation(), clang::Sema::AddConversionCandidate(), clang::Sema::AddMethodCandidate(), clang::Sema::AddOverloadCandidate(), clang::Sema::AddSurrogateCandidate(), calculateConstraintSatisfaction(), calculateConstraintSatisfaction(), calculateConstraintSatisfaction(), checkAddressOfFunctionIsAvailable(), CheckConstraintSatisfaction(), clang::Sema::CheckConstraintSatisfaction(), CheckDeducedArgumentConstraints(), CheckDeducedPlaceholderConstraints(), clang::Sema::CheckFunctionConstraints(), CheckFunctionConstraintsWithoutInstantiation(), clang::Sema::CheckFunctionTemplateConstraints(), clang::Sema::DiagnoseUnsatisfiedConstraint(), clang::Sema::DiagnoseUseOfDecl(), clang::Sema::EnsureTemplateArgumentListConstraints(), EvaluateAtomicConstraint(), clang::Sema::FinishTemplateArgumentDeduction(), clang::ASTNodeImporter::ImportConstraintSatisfaction(), clang::Sema::InstantiateClassMembers(), readConstraintSatisfaction(), and SetEligibleMethods().