clang 22.0.0git
|
A requires-expression requirement which queries the existence of a type name or type template specialization ('type' requirements). More...
#include "clang/AST/ExprConcepts.h"
Public Types | |
enum | SatisfactionStatus { SS_Dependent , SS_SubstitutionFailure , SS_Satisfied } |
Public Types inherited from clang::concepts::Requirement | |
enum | RequirementKind { RK_Type , RK_Simple , RK_Compound , RK_Nested } |
Public Member Functions | |
TypeRequirement (TypeSourceInfo *T) | |
Construct a type requirement from a type. | |
TypeRequirement (SubstitutionDiagnostic *Diagnostic) | |
Construct a type requirement when the nested name specifier is invalid due to a bad substitution. | |
SatisfactionStatus | getSatisfactionStatus () const |
void | setSatisfactionStatus (SatisfactionStatus Status) |
bool | isSubstitutionFailure () const |
SubstitutionDiagnostic * | getSubstitutionDiagnostic () const |
TypeSourceInfo * | getType () const |
Public Member Functions inherited from clang::concepts::Requirement | |
Requirement (RequirementKind Kind, bool IsDependent, bool ContainsUnexpandedParameterPack, bool IsSatisfied=true) | |
RequirementKind | getKind () const |
bool | isSatisfied () const |
void | setSatisfied (bool IsSatisfied) |
void | setDependent (bool IsDependent) |
bool | isDependent () const |
void | setContainsUnexpandedParameterPack (bool Contains) |
bool | containsUnexpandedParameterPack () const |
Static Public Member Functions | |
static bool | classof (const Requirement *R) |
Public Attributes | |
friend | ASTStmtReader |
friend | ASTStmtWriter |
A requires-expression requirement which queries the existence of a type name or type template specialization ('type' requirements).
Definition at line 227 of file ExprConcepts.h.
Enumerator | |
---|---|
SS_Dependent | |
SS_SubstitutionFailure | |
SS_Satisfied |
Definition at line 229 of file ExprConcepts.h.
concepts::TypeRequirement::TypeRequirement | ( | TypeSourceInfo * | T | ) |
Construct a type requirement from a type.
If the given type is not dependent, this indicates that the type exists and the requirement will be satisfied. Otherwise, the SubstitutionDiagnostic constructor is to be used.
Definition at line 170 of file ASTConcept.cpp.
References clang::concepts::Requirement::containsUnexpandedParameterPack(), getType(), clang::concepts::Requirement::Requirement(), clang::concepts::Requirement::RK_Type, SS_Dependent, SS_Satisfied, clang::T, and true.
|
inline |
Construct a type requirement when the nested name specifier is invalid due to a bad substitution.
The requirement is unsatisfied.
Definition at line 249 of file ExprConcepts.h.
References false, clang::concepts::Requirement::Requirement(), clang::concepts::Requirement::RK_Type, and SS_SubstitutionFailure.
|
inlinestatic |
Definition at line 275 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind(), clang::concepts::Requirement::Requirement(), and clang::concepts::Requirement::RK_Type.
|
inline |
Definition at line 253 of file ExprConcepts.h.
Referenced by diagnoseUnsatisfiedRequirement().
|
inline |
Definition at line 262 of file ExprConcepts.h.
References clang::cast(), and SS_SubstitutionFailure.
Referenced by diagnoseUnsatisfiedRequirement(), clang::ASTNodeImporter::ImportTypeRequirement(), and clang::TreeTransform< Derived >::TransformTypeRequirement().
|
inline |
Definition at line 269 of file ExprConcepts.h.
References clang::cast(), and isSubstitutionFailure().
Referenced by clang::ASTNodeImporter::ImportTypeRequirement(), clang::TreeTransform< Derived >::TransformTypeRequirement(), clang::RecursiveASTVisitor< Derived >::TraverseConceptTypeRequirement(), and TypeRequirement().
|
inline |
Definition at line 258 of file ExprConcepts.h.
References SS_SubstitutionFailure.
Referenced by getType(), clang::ASTNodeImporter::ImportTypeRequirement(), clang::TreeTransform< Derived >::TransformTypeRequirement(), and clang::RecursiveASTVisitor< Derived >::TraverseConceptTypeRequirement().
|
inline |
Definition at line 254 of file ExprConcepts.h.
friend clang::concepts::TypeRequirement::ASTStmtReader |
Definition at line 238 of file ExprConcepts.h.
friend clang::concepts::TypeRequirement::ASTStmtWriter |
Definition at line 239 of file ExprConcepts.h.