|
clang 22.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 282 of file ExprConcepts.h.
| Enumerator | |
|---|---|
| SS_Dependent | |
| SS_ExprSubstitutionFailure | |
| SS_NoexceptNotMet | |
| SS_TypeRequirementSubstitutionFailure | |
| SS_ConstraintsNotSatisfied | |
| SS_Satisfied | |
Definition at line 284 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 138 of file ASTConcept.cpp.
References clang::concepts::Requirement::containsUnexpandedParameterPack(), clang::concepts::ExprRequirement::ReturnTypeRequirement::isEmpty(), clang::concepts::ExprRequirement::ReturnTypeRequirement::isTypeConstraint(), clang::concepts::Requirement::Requirement(), clang::concepts::Requirement::RK_Compound, clang::concepts::Requirement::RK_Simple, SS_Dependent, SS_Satisfied, 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 156 of file ASTConcept.cpp.
References clang::concepts::Requirement::containsUnexpandedParameterPack(), false, clang::concepts::Requirement::isDependent(), clang::concepts::ExprRequirement::ReturnTypeRequirement::isEmpty(), clang::concepts::Requirement::Requirement(), clang::concepts::Requirement::RK_Compound, clang::concepts::Requirement::RK_Simple, and SS_ExprSubstitutionFailure.
|
inlinestatic |
Definition at line 425 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind(), clang::concepts::Requirement::Requirement(), clang::concepts::Requirement::RK_Compound, and clang::concepts::Requirement::RK_Simple.
|
inline |
Definition at line 418 of file ExprConcepts.h.
References clang::cast(), and isExprSubstitutionFailure().
Referenced by diagnoseUnsatisfiedRequirement(), clang::ASTNodeImporter::ImportExprRequirement(), clang::TreeTransform< Derived >::TransformExprRequirement(), and clang::RecursiveASTVisitor< Derived >::TraverseConceptExprRequirement().
|
inline |
Definition at line 411 of file ExprConcepts.h.
References clang::cast(), and isExprSubstitutionFailure().
Referenced by diagnoseUnsatisfiedRequirement(), clang::ASTNodeImporter::ImportExprRequirement(), and clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
Definition at line 393 of file ExprConcepts.h.
Referenced by diagnoseUnsatisfiedRequirement(), clang::ASTNodeImporter::ImportExprRequirement(), and clang::TreeTransform< Derived >::TransformExprRequirement().
|
inline |
|
inline |
Definition at line 406 of file ExprConcepts.h.
References SS_TypeRequirementSubstitutionFailure.
Referenced by diagnoseUnsatisfiedRequirement(), and clang::ASTNodeImporter::ImportExprRequirement().
|
inline |
Definition at line 395 of file ExprConcepts.h.
Referenced by diagnoseUnsatisfiedRequirement(), and clang::ASTNodeImporter::ImportExprRequirement().
|
inline |
Definition at line 392 of file ExprConcepts.h.
|
inline |
Definition at line 390 of file ExprConcepts.h.
References clang::concepts::Requirement::getKind(), and clang::concepts::Requirement::RK_Compound.
|
inline |
Definition at line 397 of file ExprConcepts.h.
References SS_ExprSubstitutionFailure.
Referenced by getExpr(), getExprSubstitutionDiagnostic(), clang::TreeTransform< Derived >::TransformExprRequirement(), and clang::RecursiveASTVisitor< Derived >::TraverseConceptExprRequirement().
|
inline |
Definition at line 389 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 362 of file ExprConcepts.h.
| friend clang::concepts::ExprRequirement::ASTStmtWriter |
Definition at line 363 of file ExprConcepts.h.