clang 20.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. | |
bool | isEquivalent (const ExplicitSpecifier Other) const |
Check for equivalence of explicit specifiers. | |
bool | isExplicit () const |
Determine whether this specifier is known to correspond to an explicit declaration. | |
bool | isInvalid () const |
Determine if the explicit specifier is invalid. | |
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 1910 of file DeclCXX.h.
Referenced by addExplicitSpecifier(), clang::ast_matchers::AST_MATCHER_P(), clang::CXXConstructorDecl::Create(), DiagnoseFailedExplicitSpec(), clang::DeclSpec::getExplicitSpecRange(), clang::Sema::instantiateExplicitSpecifier(), instantiateExplicitSpecifierDeferred(), isEquivalent(), printExplicitSpecifier(), clang::CXXConstructorDecl::setExplicitSpecifier(), clang::DeclSpec::setFunctionSpecExplicit(), and clang::Sema::tryResolveExplicitSpecifier().
|
inlinestatic |
Definition at line 1938 of file DeclCXX.h.
References clang::Function, and getFromDecl().
|
static |
Definition at line 2182 of file DeclCXX.cpp.
References clang::Function.
Referenced by clang::Sema::AddOverloadCandidate(), clang::ast_matchers::AST_MATCHER_P(), DiagnoseFailedExplicitSpec(), getFromDecl(), isNonDependentlyExplicit(), and clang::TemplateDeclInstantiator::VisitCXXMethodDecl().
|
inline |
Definition at line 1909 of file DeclCXX.h.
Referenced by addExplicitSpecifier(), clang::Sema::instantiateExplicitSpecifier(), and isEquivalent().
|
inlinestatic |
Definition at line 1941 of file DeclCXX.h.
References ExplicitSpecifier(), and clang::Unresolved.
Referenced by clang::Sema::instantiateExplicitSpecifier().
bool ExplicitSpecifier::isEquivalent | ( | const ExplicitSpecifier | Other | ) | const |
Check for equivalence of explicit specifiers.
Definition at line 2167 of file DeclCXX.cpp.
References clang::ODRHash::AddStmt(), clang::ODRHash::CalculateHash(), getExpr(), getKind(), clang::Other, 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 1925 of file DeclCXX.h.
References clang::ResolvedTrue.
Referenced by DiagnoseFailedExplicitSpec(), 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 1930 of file DeclCXX.h.
References clang::Unresolved.
Referenced by instantiateExplicitSpecifierDeferred(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().
|
inline |
Determine if the declaration had an explicit specifier of any kind.
Definition at line 1914 of file DeclCXX.h.
References clang::ResolvedFalse.
Referenced by clang::DeclSpec::hasExplicitSpecifier().
|
inline |
Definition at line 1935 of file DeclCXX.h.
References E.
Referenced by clang::Sema::tryResolveExplicitSpecifier().
|
inline |
Definition at line 1934 of file DeclCXX.h.
References Kind.
Referenced by clang::Sema::tryResolveExplicitSpecifier(), and clang::TemplateDeclInstantiator::VisitCXXMethodDecl().