SourceRange |
getSourceRange () const override LLVM_READONLY |
|
Source range that this declaration covers. |
|
|
SourceLocation |
getBeginLoc () const LLVM_READONLY |
|
|
void |
setAtLoc (SourceLocation Loc) |
|
|
ObjCPropertyDecl * |
getPropertyDecl () const |
|
|
void |
setPropertyDecl (ObjCPropertyDecl *Prop) |
|
|
Kind |
getPropertyImplementation () const |
|
|
ObjCIvarDecl * |
getPropertyIvarDecl () const |
|
|
SourceLocation |
getPropertyIvarDeclLoc () const |
|
|
void |
setPropertyIvarDecl (ObjCIvarDecl *Ivar, SourceLocation IvarLoc) |
|
|
bool |
isIvarNameSpecified () const |
|
For @synthesize, returns true if an ivar name was explicitly specified. |
|
|
ObjCMethodDecl * |
getGetterMethodDecl () const |
|
|
void |
setGetterMethodDecl (ObjCMethodDecl *MD) |
|
|
ObjCMethodDecl * |
getSetterMethodDecl () const |
|
|
void |
setSetterMethodDecl (ObjCMethodDecl *MD) |
|
|
Expr * |
getGetterCXXConstructor () const |
|
|
void |
setGetterCXXConstructor (Expr *getterCXXConstructor) |
|
|
Expr * |
getSetterCXXAssignment () const |
|
|
void |
setSetterCXXAssignment (Expr *setterCXXAssignment) |
|
|
Public Member Functions inherited from clang::Decl |
|
|
Decl ()=delete |
|
|
|
Decl (const Decl &)=delete |
|
|
|
Decl (Decl &&)=delete |
|
|
Decl & |
operator= (const Decl &)=delete |
|
|
Decl & |
operator= (Decl &&)=delete |
|
|
virtual SourceRange |
getSourceRange () const LLVM_READONLY |
|
Source range that this declaration covers. |
|
|
SourceLocation |
getBeginLoc () const LLVM_READONLY |
|
|
SourceLocation |
getEndLoc () const LLVM_READONLY |
|
|
SourceLocation |
getLocation () const |
|
|
void |
setLocation (SourceLocation L) |
|
|
Kind |
getKind () const |
|
|
const char * |
getDeclKindName () const |
|
|
Decl * |
getNextDeclInContext () |
|
|
const Decl * |
getNextDeclInContext () const |
|
|
DeclContext * |
getDeclContext () |
|
|
const DeclContext * |
getDeclContext () const |
|
|
DeclContext * |
getNonTransparentDeclContext () |
|
Return the non transparent context. |
|
|
const DeclContext * |
getNonTransparentDeclContext () const |
|
|
Decl * |
getNonClosureContext () |
|
Find the innermost non-closure ancestor of this declaration, walking up through blocks, lambdas, etc. |
|
|
const Decl * |
getNonClosureContext () const |
|
|
TranslationUnitDecl * |
getTranslationUnitDecl () |
|
|
const TranslationUnitDecl * |
getTranslationUnitDecl () const |
|
|
bool |
isInAnonymousNamespace () const |
|
|
bool |
isInStdNamespace () const |
|
|
bool |
isFileContextDecl () const |
|
|
ASTContext & |
getASTContext () const LLVM_READONLY |
|
|
const LangOptions & |
getLangOpts () const LLVM_READONLY |
|
Helper to get the language options from the ASTContext. |
|
|
void |
setAccess (AccessSpecifier AS) |
|
|
AccessSpecifier |
getAccess () const |
|
|
AccessSpecifier |
getAccessUnsafe () const |
|
Retrieve the access specifier for this declaration, even though it may not yet have been properly set. |
|
|
bool |
hasAttrs () const |
|
|
void |
setAttrs (const AttrVec &Attrs) |
|
|
AttrVec & |
getAttrs () |
|
|
const AttrVec & |
getAttrs () const |
|
|
void |
dropAttrs () |
|
|
void |
addAttr (Attr *A) |
|
|
attr_range |
attrs () const |
|
|
attr_iterator |
attr_begin () const |
|
|
attr_iterator |
attr_end () const |
|
|
template<typename... Ts> |
|
void |
dropAttrs () |
|
|
template<typename T > |
|
void |
dropAttr () |
|
|
template<typename T > |
|
llvm::iterator_range< specific_attr_iterator< T > > |
specific_attrs () const |
|
|
template<typename T > |
|
specific_attr_iterator< T > |
specific_attr_begin () const |
|
|
template<typename T > |
|
specific_attr_iterator< T > |
specific_attr_end () const |
|
|
template<typename T > |
|
T * |
getAttr () const |
|
|
template<typename T > |
|
bool |
hasAttr () const |
|
|
unsigned |
getMaxAlignment () const |
|
getMaxAlignment - return the maximum alignment specified by attributes on this decl, 0 if there are none. |
|
|
void |
setInvalidDecl (bool Invalid=true) |
|
setInvalidDecl - Indicates the Decl had a semantic error. |
|
|
bool |
isInvalidDecl () const |
|
|
bool |
isImplicit () const |
|
isImplicit - Indicates whether the declaration was implicitly generated by the implementation. |
|
|
void |
setImplicit (bool I=true) |
|
|
bool |
isUsed (bool CheckUsedAttr=true) const |
|
Whether any (re-)declaration of the entity was used, meaning that a definition is required. |
|
|
void |
setIsUsed () |
|
Set whether the declaration is used, in the sense of odr-use. |
|
|
void |
markUsed (ASTContext &C) |
|
Mark the declaration used, in the sense of odr-use. |
|
|
bool |
isReferenced () const |
|
Whether any declaration of this entity was referenced. |
|
|
bool |
isThisDeclarationReferenced () const |
|
Whether this declaration was referenced. |
|
|
void |
setReferenced (bool R=true) |
|
|
bool |
isTopLevelDeclInObjCContainer () const |
|
Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition. |
|
|
void |
setTopLevelDeclInObjCContainer (bool V=true) |
|
|
ExternalSourceSymbolAttr * |
getExternalSourceSymbolAttr () const |
|
Looks on this and related declarations for an applicable external source symbol attribute. |
|
|
bool |
isModulePrivate () const |
|
Whether this declaration was marked as being private to the module in which it was defined. |
|
|
bool |
isInExportDeclContext () const |
|
Whether this declaration was exported in a lexical context. |
|
|
bool |
isInvisibleOutsideTheOwningModule () const |
|
|
bool |
isInAnotherModuleUnit () const |
|
Whether this declaration comes from another module unit. |
|
|
bool |
isInCurrentModuleUnit () const |
|
Whether this declaration comes from the same module unit being compiled. |
|
|
bool |
shouldEmitInExternalSource () const |
|
Whether the definition of the declaration should be emitted in external sources. |
|
|
bool |
isFromExplicitGlobalModule () const |
|
Whether this declaration comes from explicit global module. |
|
|
bool |
isFromGlobalModule () const |
|
Whether this declaration comes from global module. |
|
|
bool |
isInNamedModule () const |
|
Whether this declaration comes from a named module. |
|
|
bool |
isFromHeaderUnit () const |
|
Whether this declaration comes from a header unit. |
|
|
bool |
hasDefiningAttr () const |
|
Return true if this declaration has an attribute which acts as definition of the entity, such as 'alias' or 'ifunc'. |
|
|
const Attr * |
getDefiningAttr () const |
|
Return this declaration's defining attribute if it has one. |
|
|
void |
setFromASTFile () |
|
Set the FromASTFile flag. |
|
|
void |
setOwningModuleID (unsigned ID) |
|
Set the owning module ID. |
|
|
AvailabilityResult |
getAvailability (std::string *Message=nullptr, VersionTuple EnclosingVersion=VersionTuple(), StringRef *RealizedPlatform=nullptr) const |
|
Determine the availability of the given declaration. |
|
|
VersionTuple |
getVersionIntroduced () const |
|
Retrieve the version of the target platform in which this declaration was introduced. |
|
|
bool |
isDeprecated (std::string *Message=nullptr) const |
|
Determine whether this declaration is marked 'deprecated'. |
|
|
bool |
isUnavailable (std::string *Message=nullptr) const |
|
Determine whether this declaration is marked 'unavailable'. |
|
|
bool |
isWeakImported () const |
|
Determine whether this is a weak-imported symbol. |
|
|
bool |
canBeWeakImported (bool &IsDefinition) const |
|
Determines whether this symbol can be weak-imported, e.g., whether it would be well-formed to add the weak_import attribute. |
|
|
bool |
isFromASTFile () const |
|
Determine whether this declaration came from an AST file (such as a precompiled header or module) rather than having been parsed. |
|
|
GlobalDeclID |
getGlobalID () const |
|
Retrieve the global declaration ID associated with this declaration, which specifies where this Decl was loaded from. |
|
|
unsigned |
getOwningModuleID () const |
|
Retrieve the global ID of the module that owns this particular declaration. |
|
|
Module * |
getImportedOwningModule () const |
|
Get the imported owning module, if this decl is from an imported (non-local) module. |
|
|
Module * |
getLocalOwningModule () const |
|
Get the local owning module, if known. |
|
|
void |
setLocalOwningModule (Module *M) |
|
|
bool |
hasOwningModule () const |
|
Is this declaration owned by some module? |
|
|
Module * |
getOwningModule () const |
|
Get the module that owns this declaration (for visibility purposes). |
|
|
Module * |
getTopLevelOwningNamedModule () const |
|
Get the top level owning named module that owns this declaration if any. |
|
|
Module * |
getOwningModuleForLinkage () const |
|
Get the module that owns this declaration for linkage purposes. |
|
|
bool |
isUnconditionallyVisible () const |
|
Determine whether this declaration is definitely visible to name lookup, independent of whether the owning module is visible. |
|
|
bool |
isReachable () const |
|
|
void |
setVisibleDespiteOwningModule () |
|
Set that this declaration is globally visible, even if it came from a module that is not visible. |
|
|
ModuleOwnershipKind |
getModuleOwnershipKind () const |
|
Get the kind of module ownership for this declaration. |
|
|
void |
setModuleOwnershipKind (ModuleOwnershipKind MOK) |
|
Set whether this declaration is hidden from name lookup. |
|
|
unsigned |
getIdentifierNamespace () const |
|
|
bool |
isInIdentifierNamespace (unsigned NS) const |
|
|
bool |
hasTagIdentifierNamespace () const |
|
|
DeclContext * |
getLexicalDeclContext () |
|
getLexicalDeclContext - The declaration context where this Decl was lexically declared (LexicalDC). |
|
|
const DeclContext * |
getLexicalDeclContext () const |
|
|
virtual bool |
isOutOfLine () const |
|
Determine whether this declaration is declared out of line (outside its semantic context). |
|
|
void |
setDeclContext (DeclContext *DC) |
|
setDeclContext - Set both the semantic and lexical DeclContext to DC. |
|
|
void |
setLexicalDeclContext (DeclContext *DC) |
|
|
bool |
isTemplated () const |
|
Determine whether this declaration is a templated entity (whether it is. |
|
|
unsigned |
getTemplateDepth () const |
|
Determine the number of levels of template parameter surrounding this declaration. |
|
|
bool |
isDefinedOutsideFunctionOrMethod () const |
|
isDefinedOutsideFunctionOrMethod - This predicate returns true if this scoped decl is defined outside the current function or method. |
|
|
bool |
isInLocalScopeForInstantiation () const |
|
Determine whether a substitution into this declaration would occur as part of a substitution into a dependent local scope. |
|
|
const DeclContext * |
getParentFunctionOrMethod (bool LexicalParent=false) const |
|
If this decl is defined inside a function/method/block it returns the corresponding DeclContext, otherwise it returns null. |
|
|
DeclContext * |
getParentFunctionOrMethod (bool LexicalParent=false) |
|
|
virtual Decl * |
getCanonicalDecl () |
|
Retrieves the "canonical" declaration of the given declaration. |
|
|
const Decl * |
getCanonicalDecl () const |
|
|
bool |
isCanonicalDecl () const |
|
Whether this particular Decl is a canonical one. |
|
|
redecl_range |
redecls () const |
|
Returns an iterator range for all the redeclarations of the same decl. |
|
|
redecl_iterator |
redecls_begin () const |
|
|
redecl_iterator |
redecls_end () const |
|
|
Decl * |
getPreviousDecl () |
|
Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration. |
|
|
const Decl * |
getPreviousDecl () const |
|
Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration. |
|
|
bool |
isFirstDecl () const |
|
True if this is the first declaration in its redeclaration chain. |
|
|
Decl * |
getMostRecentDecl () |
|
Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). |
|
|
const Decl * |
getMostRecentDecl () const |
|
Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). |
|
|
virtual Stmt * |
getBody () const |
|
getBody - If this Decl represents a declaration for a body of code, such as a function or method definition, this method returns the top-level Stmt* of that body. |
|
|
virtual bool |
hasBody () const |
|
Returns true if this Decl represents a declaration for a body of code, such as a function or method definition. |
|
|
SourceLocation |
getBodyRBrace () const |
|
getBodyRBrace - Gets the right brace of the body, if a body exists. |
|
|
bool |
isTemplateParameter () const |
|
isTemplateParameter - Determines whether this declaration is a template parameter. |
|
|
bool |
isTemplateParameterPack () const |
|
isTemplateParameter - Determines whether this declaration is a template parameter pack. |
|
|
bool |
isParameterPack () const |
|
Whether this declaration is a parameter pack. |
|
|
bool |
isTemplateDecl () const |
|
returns true if this declaration is a template |
|
|
bool |
isFunctionOrFunctionTemplate () const |
|
Whether this declaration is a function or function template. |
|
|
TemplateDecl * |
getDescribedTemplate () const |
|
If this is a declaration that describes some template, this method returns that template declaration. |
|
|
const TemplateParameterList * |
getDescribedTemplateParams () const |
|
If this is a declaration that describes some template or partial specialization, this returns the corresponding template parameter list. |
|
|
FunctionDecl * |
getAsFunction () LLVM_READONLY |
|
Returns the function itself, or the templated function if this is a function template. |
|
|
const FunctionDecl * |
getAsFunction () const |
|
|
void |
setLocalExternDecl () |
|
Changes the namespace of this declaration to reflect that it's a function-local extern declaration. |
|
|
bool |
isLocalExternDecl () const |
|
Determine whether this is a block-scope declaration with linkage. |
|
|
void |
setObjectOfFriendDecl (bool PerformFriendInjection=false) |
|
Changes the namespace of this declaration to reflect that it's the object of a friend declaration. |
|
|
void |
clearIdentifierNamespace () |
|
Clears the namespace of this declaration. |
|
|
FriendObjectKind |
getFriendObjectKind () const |
|
Determines whether this declaration is the object of a friend declaration and, if so, what kind. |
|
|
void |
setNonMemberOperator () |
|
Specifies that this declaration is a C++ overloaded non-member. |
|
|
void |
print (raw_ostream &Out, unsigned Indentation=0, bool PrintInstantiation=false) const |
|
|
void |
print (raw_ostream &Out, const PrintingPolicy &Policy, unsigned Indentation=0, bool PrintInstantiation=false) const |
|
|
void |
dump () const |
|
|
void |
dumpColor () const |
|
|
void |
dump (raw_ostream &Out, bool Deserialize=false, ASTDumpOutputFormat OutputFormat=ADOF_Default) const |
|
|
int64_t |
getID () const |
|
|
const FunctionType * |
getFunctionType (bool BlocksToo=true) const |
|
Looks through the Decl's underlying type to extract a FunctionType when possible. |
|
|
bool |
isFunctionPointerType () const |
|
|