clang
10.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 253 of file ExprConcepts.h.
Enumerator | |
---|---|
SS_Dependent | |
SS_ExprSubstitutionFailure | |
SS_NoexceptNotMet | |
SS_TypeRequirementSubstitutionFailure | |
SS_ConstraintsNotSatisfied | |
SS_Satisfied |
Definition at line 255 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 994 of file SemaConcept.cpp.
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 1012 of file SemaConcept.cpp.
References clang::concepts::ExprRequirement::ReturnTypeRequirement::isEmpty(), clang::SourceLocation::isInvalid(), and clang::concepts::ExprRequirement::ReturnTypeRequirement::ReturnTypeRequirement().
|
inlinestatic |
Definition at line 395 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind().
|
inline |
Definition at line 388 of file ExprConcepts.h.
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 381 of file ExprConcepts.h.
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 363 of file ExprConcepts.h.
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 371 of file ExprConcepts.h.
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 376 of file ExprConcepts.h.
|
inline |
Definition at line 365 of file ExprConcepts.h.
|
inline |
Definition at line 362 of file ExprConcepts.h.
References clang::SourceLocation::isValid().
|
inline |
Definition at line 360 of file ExprConcepts.h.
References getKind().
|
inline |
Definition at line 367 of file ExprConcepts.h.
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 359 of file ExprConcepts.h.
References getKind().
Referenced by clang::TreeTransform< Derived >::TransformExprRequirement().
friend clang::concepts::ExprRequirement::ASTStmtReader |
Definition at line 332 of file ExprConcepts.h.
friend clang::concepts::ExprRequirement::ASTStmtWriter |
Definition at line 333 of file ExprConcepts.h.