clang
10.0.0git
|
Store information needed for an explicit specifier. More...
#include "clang/AST/DeclCXX.h"
Public Member Functions | |
ExplicitSpecifier ()=default | |
ExplicitSpecifier (Expr *Expression, ExplicitSpecKind Kind) | |
ExplicitSpecKind | getKind () const |
const Expr * | getExpr () const |
Expr * | getExpr () |
bool | isSpecified () const |
Determine if the declaration had an explicit specifier of any kind. More... | |
bool | isEquivalent (const ExplicitSpecifier Other) const |
Check for equivalence of explicit specifiers. More... | |
bool | isExplicit () const |
Determine whether this specifier is known to correspond to an explicit declaration. More... | |
bool | isInvalid () const |
Determine if the explicit specifier is invalid. More... | |
void | setKind (ExplicitSpecKind Kind) |
void | setExpr (Expr *E) |
Static Public Member Functions | |
static ExplicitSpecifier | getFromDecl (FunctionDecl *Function) |
static const ExplicitSpecifier | getFromDecl (const FunctionDecl *Function) |
static ExplicitSpecifier | Invalid () |
Store information needed for an explicit specifier.
Used by CXXDeductionGuideDecl, CXXConstructorDecl and CXXConversionDecl.
|
default |
|
inline |
|
inline |
Definition at line 1796 of file DeclCXX.h.
Referenced by addExplicitSpecifier(), clang::CXXConstructorDecl::Create(), clang::DeclSpec::getExplicitSpecRange(), clang::CXXCtorInitializer::getSourceRange(), isEquivalent(), printExplicitSpecifier(), clang::DeclSpec::setFunctionSpecExplicit(), and clang::Sema::tryResolveExplicitSpecifier().
|
static |
Definition at line 1943 of file DeclCXX.cpp.
References clang::XRayInstrKind::Function, and clang::DeclContext::getDeclKind().
Referenced by isNonDependentlyExplicit(), printExplicitSpecifier(), and clang::TemplateDeclInstantiator::VisitCXXMethodDecl().
|
inlinestatic |
|
inline |
Definition at line 1795 of file DeclCXX.h.
Referenced by addExplicitSpecifier(), isEquivalent(), and clang::DeclSpec::setFunctionSpecExplicit().
|
inlinestatic |
Definition at line 1827 of file DeclCXX.h.
References clang::Unresolved.
bool ExplicitSpecifier::isEquivalent | ( | const ExplicitSpecifier | Other | ) | const |
Check for equivalence of explicit specifiers.
Definition at line 1928 of file DeclCXX.cpp.
References clang::ODRHash::AddStmt(), clang::ODRHash::CalculateHash(), getExpr(), clang::Decl::getKind(), getKind(), and clang::Unresolved.
|
inline |
Determine whether this specifier is known to correspond to an explicit declaration.
Returns false if the specifier is absent or has an expression that is value-dependent or evaluates to false.
Definition at line 1811 of file DeclCXX.h.
References clang::ResolvedTrue.
Referenced by clang::CXXDeductionGuideDecl::isExplicit().
|
inline |
Determine if the explicit specifier is invalid.
This state occurs after a substitution failures.
Definition at line 1816 of file DeclCXX.h.
References clang::Unresolved.
Referenced by clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().
|
inline |
Determine if the declaration had an explicit specifier of any kind.
Definition at line 1800 of file DeclCXX.h.
References clang::ResolvedFalse.
Referenced by clang::DeclSpec::hasExplicitSpecifier(), and printExplicitSpecifier().
|
inline |
|
inline |