clang 20.0.0git
|
A requires-expression requirement which queries the validity and properties of an expression ('simple' and 'compound' requirements). More...
#include "clang/AST/ExprConcepts.h"
Classes | |
class | ReturnTypeRequirement |
Public Types | |
enum | SatisfactionStatus { SS_Dependent , SS_ExprSubstitutionFailure , SS_NoexceptNotMet , SS_TypeRequirementSubstitutionFailure , SS_ConstraintsNotSatisfied , SS_Satisfied } |
Public Types inherited from clang::concepts::Requirement | |
enum | RequirementKind { RK_Type , RK_Simple , RK_Compound , RK_Nested } |
Static Public Member Functions | |
static bool | classof (const Requirement *R) |
Public Attributes | |
friend | ASTStmtReader |
friend | ASTStmtWriter |
A requires-expression requirement which queries the validity and properties of an expression ('simple' and 'compound' requirements).
Definition at line 280 of file ExprConcepts.h.
Enumerator | |
---|---|
SS_Dependent | |
SS_ExprSubstitutionFailure | |
SS_NoexceptNotMet | |
SS_TypeRequirementSubstitutionFailure | |
SS_ConstraintsNotSatisfied | |
SS_Satisfied |
Definition at line 282 of file ExprConcepts.h.
concepts::ExprRequirement::ExprRequirement | ( | Expr * | E, |
bool | IsSimple, | ||
SourceLocation | NoexceptLoc, | ||
ReturnTypeRequirement | Req, | ||
SatisfactionStatus | Status, | ||
ConceptSpecializationExpr * | SubstitutedConstraintExpr = nullptr |
||
) |
Construct a compound requirement.
E | the expression which is checked by this requirement. |
IsSimple | whether this was a simple requirement in source. |
NoexceptLoc | the location of the noexcept keyword, if it was specified, otherwise an empty location. |
Req | the requirement for the type of the checked expression. |
Status | the satisfaction status of this requirement. |
Definition at line 1873 of file SemaConcept.cpp.
References clang::concepts::ExprRequirement::ReturnTypeRequirement::isEmpty(), clang::SourceLocation::isInvalid(), clang::concepts::ExprRequirement::ReturnTypeRequirement::isTypeConstraint(), and SS_TypeRequirementSubstitutionFailure.
concepts::ExprRequirement::ExprRequirement | ( | SubstitutionDiagnostic * | E, |
bool | IsSimple, | ||
SourceLocation | NoexceptLoc, | ||
ReturnTypeRequirement | Req = {} |
||
) |
Construct a compound requirement whose expression was a substitution failure.
The requirement is not satisfied.
E | the diagnostic emitted while instantiating the original expression. |
IsSimple | whether this was a simple requirement in source. |
NoexceptLoc | the location of the noexcept keyword, if it was specified, otherwise an empty location. |
Req | the requirement for the type of the checked expression (omit if no requirement was specified). |
Definition at line 1891 of file SemaConcept.cpp.
References clang::concepts::ExprRequirement::ReturnTypeRequirement::isEmpty(), and clang::SourceLocation::isInvalid().
|
inlinestatic |
Definition at line 422 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind(), clang::concepts::Requirement::RK_Compound, and clang::concepts::Requirement::RK_Simple.
|
inline |
Definition at line 415 of file ExprConcepts.h.
References isExprSubstitutionFailure().
Referenced by diagnoseUnsatisfiedRequirement(), clang::TreeTransform< Derived >::TransformExprRequirement(), and clang::RecursiveASTVisitor< Derived >::TraverseConceptExprRequirement().
|
inline |
Definition at line 408 of file ExprConcepts.h.
References isExprSubstitutionFailure().
Referenced by diagnoseUnsatisfiedRequirement(), and clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 390 of file ExprConcepts.h.
Referenced by diagnoseUnsatisfiedRequirement(), and clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 398 of file ExprConcepts.h.
Referenced by diagnoseUnsatisfiedRequirement(), clang::TreeTransform< Derived >::TransformExprRequirement(), and clang::RecursiveASTVisitor< Derived >::TraverseConceptExprRequirement().
|
inline |
Definition at line 403 of file ExprConcepts.h.
References SS_TypeRequirementSubstitutionFailure.
Referenced by diagnoseUnsatisfiedRequirement().
|
inline |
Definition at line 392 of file ExprConcepts.h.
Referenced by diagnoseUnsatisfiedRequirement().
|
inline |
Definition at line 389 of file ExprConcepts.h.
References clang::SourceLocation::isValid().
|
inline |
Definition at line 387 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind(), and clang::concepts::Requirement::RK_Compound.
|
inline |
Definition at line 394 of file ExprConcepts.h.
References SS_ExprSubstitutionFailure.
Referenced by getExpr(), getExprSubstitutionDiagnostic(), clang::TreeTransform< Derived >::TransformExprRequirement(), and clang::RecursiveASTVisitor< Derived >::TraverseConceptExprRequirement().
|
inline |
Definition at line 386 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind(), and clang::concepts::Requirement::RK_Simple.
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
friend clang::concepts::ExprRequirement::ASTStmtReader |
Definition at line 359 of file ExprConcepts.h.
friend clang::concepts::ExprRequirement::ASTStmtWriter |
Definition at line 360 of file ExprConcepts.h.