clang
15.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 |
Referenced by Invalid().
|
inline |
|
inline |
Definition at line 1837 of file DeclCXX.h.
Referenced by addExplicitSpecifier(), clang::CXXConstructorDecl::Create(), clang::DeclSpec::getExplicitSpecRange(), isEquivalent(), clang::CXXConstructorDecl::setExplicitSpecifier(), clang::DeclSpec::setFunctionSpecExplicit(), and clang::Sema::tryResolveExplicitSpecifier().
|
inlinestatic |
Definition at line 1865 of file DeclCXX.h.
References getFromDecl().
|
static |
Definition at line 2071 of file DeclCXX.cpp.
Referenced by getFromDecl(), isNonDependentlyExplicit(), and clang::TemplateDeclInstantiator::VisitCXXMethodDecl().
|
inline |
Definition at line 1836 of file DeclCXX.h.
Referenced by addExplicitSpecifier(), and isEquivalent().
|
inlinestatic |
Definition at line 1868 of file DeclCXX.h.
References ExplicitSpecifier(), and clang::Unresolved.
bool ExplicitSpecifier::isEquivalent | ( | const ExplicitSpecifier | Other | ) | const |
Check for equivalence of explicit specifiers.
Definition at line 2056 of file DeclCXX.cpp.
References clang::ODRHash::AddStmt(), clang::ODRHash::CalculateHash(), getExpr(), 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 1852 of file DeclCXX.h.
References clang::ResolvedTrue.
Referenced by clang::CXXDeductionGuideDecl::isExplicit(), clang::CXXConstructorDecl::isExplicit(), clang::CXXConversionDecl::isExplicit(), isNonDependentlyExplicit(), and clang::CXXConstructorDecl::setExplicitSpecifier().
|
inline |
Determine if the explicit specifier is invalid.
This state occurs after a substitution failures.
Definition at line 1857 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 1841 of file DeclCXX.h.
References clang::ResolvedFalse.
Referenced by clang::DeclSpec::hasExplicitSpecifier().
|
inline |
Definition at line 1862 of file DeclCXX.h.
Referenced by clang::Sema::tryResolveExplicitSpecifier().
|
inline |
Definition at line 1861 of file DeclCXX.h.
Referenced by clang::Sema::tryResolveExplicitSpecifier().