SourceRange |
getBraceRange () const |
|
|
void |
setBraceRange (SourceRange R) |
|
|
SourceLocation |
getInnerLocStart () const |
|
Return SourceLocation representing start of source range ignoring outer template declarations. |
|
|
SourceLocation |
getOuterLocStart () const |
|
Return SourceLocation representing start of source range taking into account any outer template declarations. |
|
|
SourceRange |
getSourceRange () const override LLVM_READONLY |
|
Source range that this declaration covers. |
|
|
TagDecl * |
getCanonicalDecl () override |
|
Retrieves the "canonical" declaration of the given declaration. |
|
|
const TagDecl * |
getCanonicalDecl () const |
|
|
bool |
isThisDeclarationADefinition () const |
|
Return true if this declaration is a completion definition of the type. |
|
|
bool |
isCompleteDefinition () const |
|
Return true if this decl has its body fully specified. |
|
|
void |
setCompleteDefinition (bool V=true) |
|
True if this decl has its body fully specified. |
|
|
bool |
isCompleteDefinitionRequired () const |
|
Return true if this complete decl is required to be complete for some existing use. |
|
|
void |
setCompleteDefinitionRequired (bool V=true) |
|
True if this complete decl is required to be complete for some existing use. |
|
|
bool |
isBeingDefined () const |
|
Return true if this decl is currently being defined. |
|
|
bool |
isEmbeddedInDeclarator () const |
|
True if this tag declaration is "embedded" (i.e., defined or declared for the very first time) in the syntax of a declarator. |
|
|
void |
setEmbeddedInDeclarator (bool isInDeclarator) |
|
True if this tag declaration is "embedded" (i.e., defined or declared for the very first time) in the syntax of a declarator. |
|
|
bool |
isFreeStanding () const |
|
True if this tag is free standing, e.g. "struct foo;". |
|
|
void |
setFreeStanding (bool isFreeStanding=true) |
|
True if this tag is free standing, e.g. "struct foo;". |
|
|
bool |
mayHaveOutOfDateDef () const |
|
Indicates whether it is possible for declarations of this kind to have an out-of-date definition. |
|
|
bool |
isDependentType () const |
|
Whether this declaration declares a type that is dependent, i.e., a type that somehow depends on template parameters. |
|
|
bool |
isThisDeclarationADemotedDefinition () const |
|
Whether this declaration was a definition in some module but was forced to be a declaration. |
|
|
void |
demoteThisDefinitionToDeclaration () |
|
Mark a definition as a declaration and maintain information it was a definition. |
|
|
void |
startDefinition () |
|
Starts the definition of this tag declaration. |
|
|
TagDecl * |
getDefinition () const |
|
Returns the TagDecl that actually defines this struct/union/class/enum. |
|
|
StringRef |
getKindName () const |
|
|
TagKind |
getTagKind () const |
|
|
void |
setTagKind (TagKind TK) |
|
|
bool |
isStruct () const |
|
|
bool |
isInterface () const |
|
|
bool |
isClass () const |
|
|
bool |
isUnion () const |
|
|
bool |
isEnum () const |
|
|
bool |
hasNameForLinkage () const |
|
Is this tag type named, either directly or via being defined in a typedef of this type? |
|
|
TypedefNameDecl * |
getTypedefNameForAnonDecl () const |
|
|
void |
setTypedefNameForAnonDecl (TypedefNameDecl *TDD) |
|
|
NestedNameSpecifier * |
getQualifier () const |
|
Retrieve the nested-name-specifier that qualifies the name of this declaration, if it was present in the source. |
|
|
NestedNameSpecifierLoc |
getQualifierLoc () const |
|
Retrieve the nested-name-specifier (with source-location information) that qualifies the name of this declaration, if it was present in the source. |
|
|
void |
setQualifierInfo (NestedNameSpecifierLoc QualifierLoc) |
|
|
unsigned |
getNumTemplateParameterLists () const |
|
|
TemplateParameterList * |
getTemplateParameterList (unsigned i) const |
|
|
void |
printName (raw_ostream &OS, const PrintingPolicy &Policy) const override |
|
Pretty-print the unqualified name of this declaration. |
|
|
void |
setTemplateParameterListsInfo (ASTContext &Context, ArrayRef< TemplateParameterList * > TPLists) |
|
|
Public Member Functions inherited from clang::TypeDecl |
|
const Type * |
getTypeForDecl () const |
|
|
void |
setTypeForDecl (const Type *TD) |
|
|
SourceLocation |
getBeginLoc () const LLVM_READONLY |
|
|
void |
setLocStart (SourceLocation L) |
|
|
SourceRange |
getSourceRange () const override LLVM_READONLY |
|
Source range that this declaration covers. |
|
|
Public Member Functions inherited from clang::NamedDecl |
|
IdentifierInfo * |
getIdentifier () const |
|
Get the identifier that names this declaration, if there is one. |
|
|
StringRef |
getName () const |
|
Get the name of identifier for this declaration as a StringRef. |
|
|
std::string |
getNameAsString () const |
|
Get a human-readable name for the declaration, even if it is one of the special kinds of names (C++ constructor, Objective-C selector, etc). |
|
|
virtual void |
printName (raw_ostream &OS, const PrintingPolicy &Policy) const |
|
Pretty-print the unqualified name of this declaration. |
|
|
void |
printName (raw_ostream &OS) const |
|
Calls printName() with the ASTContext printing policy from the decl. |
|
|
DeclarationName |
getDeclName () const |
|
Get the actual, stored name of the declaration, which may be a special name. |
|
|
void |
setDeclName (DeclarationName N) |
|
Set the name of this declaration. |
|
|
void |
printQualifiedName (raw_ostream &OS) const |
|
Returns a human-readable qualified name for this declaration, like A::B::i, for i being member of namespace A::B. |
|
|
void |
printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const |
|
|
void |
printNestedNameSpecifier (raw_ostream &OS) const |
|
Print only the nested name specifier part of a fully-qualified name, including the '::' at the end. |
|
|
void |
printNestedNameSpecifier (raw_ostream &OS, const PrintingPolicy &Policy) const |
|
|
std::string |
getQualifiedNameAsString () const |
|
|
virtual void |
getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const |
|
Appends a human-readable name for this declaration into the given stream. |
|
|
bool |
declarationReplaces (const NamedDecl *OldD, bool IsKnownNewer=true) const |
|
Determine whether this declaration, if known to be well-formed within its context, will replace the declaration OldD if introduced into scope. |
|
|
bool |
hasLinkage () const |
|
Determine whether this declaration has linkage. |
|
|
bool |
isCXXClassMember () const |
|
Determine whether this declaration is a C++ class member. |
|
|
bool |
isCXXInstanceMember () const |
|
Determine whether the given declaration is an instance member of a C++ class. |
|
|
ReservedIdentifierStatus |
isReserved (const LangOptions &LangOpts) const |
|
Determine if the declaration obeys the reserved identifier rules of the given language. |
|
|
Linkage |
getLinkageInternal () const |
|
Determine what kind of linkage this entity has. |
|
|
Linkage |
getFormalLinkage () const |
|
Get the linkage from a semantic point of view. |
|
|
bool |
hasExternalFormalLinkage () const |
|
True if this decl has external linkage. |
|
|
bool |
isExternallyVisible () const |
|
|
bool |
isExternallyDeclarable () const |
|
Determine whether this declaration can be redeclared in a different translation unit. |
|
|
Visibility |
getVisibility () const |
|
Determines the visibility of this entity. |
|
|
LinkageInfo |
getLinkageAndVisibility () const |
|
Determines the linkage and visibility of this entity. |
|
|
std::optional< Visibility > |
getExplicitVisibility (ExplicitVisibilityKind kind) const |
|
If visibility was explicitly specified for this declaration, return that visibility. |
|
|
bool |
isLinkageValid () const |
|
True if the computed linkage is valid. |
|
|
bool |
hasLinkageBeenComputed () const |
|
True if something has required us to compute the linkage of this declaration. |
|
|
bool |
isPlaceholderVar (const LangOptions &LangOpts) const |
|
|
NamedDecl * |
getUnderlyingDecl () |
|
Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl. |
|
|
const NamedDecl * |
getUnderlyingDecl () const |
|
|
NamedDecl * |
getMostRecentDecl () |
|
|
const NamedDecl * |
getMostRecentDecl () const |
|
|
ObjCStringFormatFamily |
getObjCFStringFormattingFamily () const |
|
|
bool |
isModulePrivate () const |
|
Whether this declaration was marked as being private to the module in which it was defined. |
|
|
void |
setModulePrivate () |
|
Specify that this declaration was marked as being private to the module in which it was defined. |
|
|
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 |
|
|
Public Member Functions inherited from clang::DeclContext |
|
|
~DeclContext () |
|
|
bool |
hasValidDeclKind () const |
|
|
Decl::Kind |
getDeclKind () const |
|
|
const char * |
getDeclKindName () const |
|
|
DeclContext * |
getParent () |
|
getParent - Returns the containing DeclContext. |
|
|
const DeclContext * |
getParent () const |
|
|
DeclContext * |
getLexicalParent () |
|
getLexicalParent - Returns the containing lexical DeclContext. |
|
|
const DeclContext * |
getLexicalParent () const |
|
|
DeclContext * |
getLookupParent () |
|
Find the parent context of this context that will be used for unqualified name lookup. |
|
|
const DeclContext * |
getLookupParent () const |
|
|
ASTContext & |
getParentASTContext () const |
|
|
bool |
isClosure () const |
|
|
const BlockDecl * |
getInnermostBlockDecl () const |
|
Return this DeclContext if it is a BlockDecl. |
|
|
bool |
isObjCContainer () const |
|
|
bool |
isFunctionOrMethod () const |
|
|
bool |
isLookupContext () const |
|
Test whether the context supports looking up names. |
|
|
bool |
isFileContext () const |
|
|
bool |
isTranslationUnit () const |
|
|
bool |
isRecord () const |
|
|
bool |
isRequiresExprBody () const |
|
|
bool |
isNamespace () const |
|
|
bool |
isStdNamespace () const |
|
|
bool |
isInlineNamespace () const |
|
|
bool |
isDependentContext () const |
|
Determines whether this context is dependent on a template parameter. |
|
|
bool |
isTransparentContext () const |
|
isTransparentContext - Determines whether this context is a "transparent" context, meaning that the members declared in this context are semantically declared in the nearest enclosing non-transparent (opaque) context but are lexically declared in this context. |
|
|
bool |
isExternCContext () const |
|
Determines whether this context or some of its ancestors is a linkage specification context that specifies C linkage. |
|
|
const LinkageSpecDecl * |
getExternCContext () const |
|
Retrieve the nearest enclosing C linkage specification context. |
|
|
bool |
isExternCXXContext () const |
|
Determines whether this context or some of its ancestors is a linkage specification context that specifies C++ linkage. |
|
|
bool |
Equals (const DeclContext *DC) const |
|
Determine whether this declaration context is equivalent to the declaration context DC. |
|
|
bool |
Encloses (const DeclContext *DC) const |
|
Determine whether this declaration context encloses the declaration context DC. |
|
|
Decl * |
getNonClosureAncestor () |
|
Find the nearest non-closure ancestor of this context, i.e. |
|
|
const Decl * |
getNonClosureAncestor () const |
|
|
DeclContext * |
getNonTransparentContext () |
|
|
const DeclContext * |
getNonTransparentContext () const |
|
|
DeclContext * |
getPrimaryContext () |
|
getPrimaryContext - There may be many different declarations of the same entity (including forward declarations of classes, multiple definitions of namespaces, etc.), each with a different set of declarations. |
|
|
const DeclContext * |
getPrimaryContext () const |
|
|
DeclContext * |
getRedeclContext () |
|
getRedeclContext - Retrieve the context in which an entity conflicts with other entities of the same name, or where it is a redeclaration if the two entities are compatible. |
|
|
const DeclContext * |
getRedeclContext () const |
|
|
DeclContext * |
getEnclosingNamespaceContext () |
|
Retrieve the nearest enclosing namespace context. |
|
|
const DeclContext * |
getEnclosingNamespaceContext () const |
|
|
RecordDecl * |
getOuterLexicalRecordContext () |
|
Retrieve the outermost lexically enclosing record context. |
|
|
const RecordDecl * |
getOuterLexicalRecordContext () const |
|
|
bool |
InEnclosingNamespaceSetOf (const DeclContext *NS) const |
|
Test if this context is part of the enclosing namespace set of the context NS, as defined in C++0x [namespace.def]p9. |
|
|
void |
collectAllContexts (SmallVectorImpl< DeclContext * > &Contexts) |
|
Collects all of the declaration contexts that are semantically connected to this declaration context. |
|
|
decl_range |
decls () const |
|
decls_begin/decls_end - Iterate over the declarations stored in this context. |
|
|
decl_iterator |
decls_begin () const |
|
|
decl_iterator |
decls_end () const |
|
|
bool |
decls_empty () const |
|
|
decl_range |
noload_decls () const |
|
noload_decls_begin/end - Iterate over the declarations stored in this context that are currently loaded; don't attempt to retrieve anything from an external source. |
|
|
decl_iterator |
noload_decls_begin () const |
|
|
decl_iterator |
noload_decls_end () const |
|
|
void |
addDecl (Decl *D) |
|
Add the declaration D into this context. |
|
|
void |
addDeclInternal (Decl *D) |
|
Add the declaration D into this context, but suppress searches for external declarations with the same name. |
|
|
void |
addHiddenDecl (Decl *D) |
|
Add the declaration D to this context without modifying any lookup tables. |
|
|
void |
removeDecl (Decl *D) |
|
Removes a declaration from this context. |
|
|
bool |
containsDecl (Decl *D) const |
|
Checks whether a declaration is in this context. |
|
|
bool |
containsDeclAndLoad (Decl *D) const |
|
Checks whether a declaration is in this context. |
|
|
lookup_result |
lookup (DeclarationName Name) const |
|
lookup - Find the declarations (if any) with the given Name in this context. |
|
|
lookup_result |
noload_lookup (DeclarationName Name) |
|
Find the declarations with the given name that are visible within this context; don't attempt to retrieve anything from an external source. |
|
|
void |
localUncachedLookup (DeclarationName Name, SmallVectorImpl< NamedDecl * > &Results) |
|
A simplistic name lookup mechanism that performs name lookup into this declaration context without consulting the external source. |
|
|
void |
makeDeclVisibleInContext (NamedDecl *D) |
|
Makes a declaration visible within this context. |
|
|
lookups_range |
lookups () const |
|
|
lookups_range |
noload_lookups (bool PreserveInternalState) const |
|
|
all_lookups_iterator |
lookups_begin () const |
|
Iterators over all possible lookups within this context. |
|
|
all_lookups_iterator |
lookups_end () const |
|
|
all_lookups_iterator |
noload_lookups_begin () const |
|
Iterators over all possible lookups within this context that are currently loaded; don't attempt to retrieve anything from an external source. |
|
|
all_lookups_iterator |
noload_lookups_end () const |
|
|
udir_range |
using_directives () const |
|
Returns iterator range [First, Last) of UsingDirectiveDecls stored within this context. |
|
|
ddiag_range |
ddiags () const |
|
|
void |
setMustBuildLookupTable () |
|
Mark that there are external lexical declarations that we need to include in our lookup table (and that are not available as external visible lookups). |
|
|
StoredDeclsMap * |
getLookupPtr () const |
|
Retrieve the internal representation of the lookup structure. |
|
|
StoredDeclsMap * |
buildLookup () |
|
Ensure the lookup structure is fully-built and return it. |
|
|
bool |
hasExternalLexicalStorage () const |
|
Whether this DeclContext has external storage containing additional declarations that are lexically in this context. |
|
|
void |
setHasExternalLexicalStorage (bool ES=true) const |
|
State whether this DeclContext has external storage for declarations lexically in this context. |
|
|
bool |
hasExternalVisibleStorage () const |
|
Whether this DeclContext has external storage containing additional declarations that are visible in this context. |
|
|
void |
setHasExternalVisibleStorage (bool ES=true) const |
|
State whether this DeclContext has external storage for declarations visible in this context. |
|
|
bool |
isDeclInLexicalTraversal (const Decl *D) const |
|
Determine whether the given declaration is stored in the list of declarations lexically within this context. |
|
|
void |
setUseQualifiedLookup (bool use=true) const |
|
|
bool |
shouldUseQualifiedLookup () const |
|
|
void |
dumpAsDecl () const |
|
|
void |
dumpAsDecl (const ASTContext *Ctx) const |
|
|
void |
dumpDeclContext () const |
|
|
void |
dumpLookups () const |
|
|
void |
dumpLookups (llvm::raw_ostream &OS, bool DumpDecls=false, bool Deserialize=false) const |
|
|
Public Member Functions inherited from clang::Redeclarable< TagDecl > |
|
|
Redeclarable (const ASTContext &Ctx) |
|
|
TagDecl * |
getPreviousDecl () |
|
Return the previous declaration of this declaration or NULL if this is the first declaration. |
|
|
const TagDecl * |
getPreviousDecl () const |
|
|
TagDecl * |
getFirstDecl () |
|
Return the first declaration of this declaration or itself if this is the only declaration. |
|
|
const TagDecl * |
getFirstDecl () const |
|
Return the first declaration of this declaration or itself if this is the only declaration. |
|
|
bool |
isFirstDecl () const |
|
True if this is the first declaration in its redeclaration chain. |
|
|
TagDecl * |
getMostRecentDecl () |
|
Returns the most recent (re)declaration of this declaration. |
|
|
const TagDecl * |
getMostRecentDecl () const |
|
Returns the most recent (re)declaration of this declaration. |
|
|
void |
setPreviousDecl (TagDecl *PrevDecl) |
|
Set the previous declaration. |
|
|
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 |
|
|