clang
15.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 } |
![]() | |
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 258 of file ExprConcepts.h.
Enumerator | |
---|---|
SS_Dependent | |
SS_ExprSubstitutionFailure | |
SS_NoexceptNotMet | |
SS_TypeRequirementSubstitutionFailure | |
SS_ConstraintsNotSatisfied | |
SS_Satisfied |
Definition at line 260 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 1068 of file SemaConcept.cpp.
clang::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). |
|
inlinestatic |
Definition at line 400 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind(), clang::concepts::Requirement::RK_Compound, and clang::concepts::Requirement::RK_Simple.
|
inline |
Definition at line 393 of file ExprConcepts.h.
References isExprSubstitutionFailure().
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement(), and clang::RecursiveASTVisitor< CallGraph >::TraverseConceptExprRequirement().
|
inline |
Definition at line 386 of file ExprConcepts.h.
References isExprSubstitutionFailure().
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 368 of file ExprConcepts.h.
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 376 of file ExprConcepts.h.
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement(), and clang::RecursiveASTVisitor< CallGraph >::TraverseConceptExprRequirement().
|
inline |
Definition at line 381 of file ExprConcepts.h.
References SS_TypeRequirementSubstitutionFailure.
|
inline |
Definition at line 370 of file ExprConcepts.h.
|
inline |
Definition at line 367 of file ExprConcepts.h.
References clang::SourceLocation::isValid().
|
inline |
Definition at line 365 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind(), and clang::concepts::Requirement::RK_Compound.
|
inline |
Definition at line 372 of file ExprConcepts.h.
References SS_ExprSubstitutionFailure.
Referenced by getExpr(), getExprSubstitutionDiagnostic(), clang::TreeTransform< Derived >::TransformExprRequirement(), and clang::RecursiveASTVisitor< CallGraph >::TraverseConceptExprRequirement().
|
inline |
Definition at line 364 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 337 of file ExprConcepts.h.
friend clang::concepts::ExprRequirement::ASTStmtWriter |
Definition at line 338 of file ExprConcepts.h.