|
SourceLocation | getExportLoc () const |
|
SourceLocation | getRBraceLoc () const |
|
void | setRBraceLoc (SourceLocation L) |
|
SourceLocation | getLocEnd () const LLVM_READONLY |
|
SourceRange | getSourceRange () const override LLVM_READONLY |
| Source range that this declaration covers. More...
|
|
SourceLocation | getLocStart () const LLVM_READONLY |
|
SourceLocation | getLocEnd () 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 |
|
Decl * | getNonClosureContext () |
| Find the innermost non-closure ancestor of this declaration, walking up through blocks, lambdas, etc. More...
|
|
const Decl * | getNonClosureContext () const |
|
TranslationUnitDecl * | getTranslationUnitDecl () |
|
const TranslationUnitDecl * | getTranslationUnitDecl () const |
|
bool | isInAnonymousNamespace () const |
|
bool | isInStdNamespace () const |
|
ASTContext & | getASTContext () const LLVM_READONLY |
|
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. More...
|
|
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 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. More...
|
|
void | setInvalidDecl (bool Invalid=true) |
| setInvalidDecl - Indicates the Decl had a semantic error. More...
|
|
bool | isInvalidDecl () const |
|
bool | isImplicit () const |
| isImplicit - Indicates whether the declaration was implicitly generated by the implementation. More...
|
|
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. More...
|
|
void | setIsUsed () |
| Set whether the declaration is used, in the sense of odr-use. More...
|
|
void | markUsed (ASTContext &C) |
| Mark the declaration used, in the sense of odr-use. More...
|
|
bool | isReferenced () const |
| Whether any declaration of this entity was referenced. More...
|
|
bool | isThisDeclarationReferenced () const |
| Whether this declaration was referenced. More...
|
|
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. More...
|
|
void | setTopLevelDeclInObjCContainer (bool V=true) |
|
ExternalSourceSymbolAttr * | getExternalSourceSymbolAttr () const |
| Looks on this and related declarations for an applicable external source symbol attribute. More...
|
|
bool | isModulePrivate () const |
| Whether this declaration was marked as being private to the module in which it was defined. More...
|
|
bool | isExported () const |
| Whether this declaration is exported (by virtue of being lexically within an ExportDecl or by being a NamespaceDecl). More...
|
|
bool | hasDefiningAttr () const |
| Return true if this declaration has an attribute which acts as definition of the entity, such as 'alias' or 'ifunc'. More...
|
|
const Attr * | getDefiningAttr () const |
| Return this declaration's defining attribute if it has one. More...
|
|
AvailabilityResult | getAvailability (std::string *Message=nullptr, VersionTuple EnclosingVersion=VersionTuple()) const |
| Determine the availability of the given declaration. More...
|
|
VersionTuple | getVersionIntroduced () const |
| Retrieve the version of the target platform in which this declaration was introduced. More...
|
|
bool | isDeprecated (std::string *Message=nullptr) const |
| Determine whether this declaration is marked 'deprecated'. More...
|
|
bool | isUnavailable (std::string *Message=nullptr) const |
| Determine whether this declaration is marked 'unavailable'. More...
|
|
bool | isWeakImported () const |
| Determine whether this is a weak-imported symbol. More...
|
|
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. More...
|
|
bool | isFromASTFile () const |
| Determine whether this declaration came from an AST file (such as a precompiled header or module) rather than having been parsed. More...
|
|
unsigned | getGlobalID () const |
| Retrieve the global declaration ID associated with this declaration, which specifies where this Decl was loaded from. More...
|
|
unsigned | getOwningModuleID () const |
| Retrieve the global ID of the module that owns this particular declaration. More...
|
|
Module * | getImportedOwningModule () const |
| Get the imported owning module, if this decl is from an imported (non-local) module. More...
|
|
Module * | getLocalOwningModule () const |
| Get the local owning module, if known. More...
|
|
void | setLocalOwningModule (Module *M) |
|
bool | hasOwningModule () const |
| Is this declaration owned by some module? More...
|
|
Module * | getOwningModule () const |
| Get the module that owns this declaration (for visibility purposes). More...
|
|
Module * | getOwningModuleForLinkage (bool IgnoreLinkage=false) const |
| Get the module that owns this declaration for linkage purposes. More...
|
|
bool | isHidden () const |
| Determine whether this declaration might be hidden from name lookup. More...
|
|
void | setVisibleDespiteOwningModule () |
| Set that this declaration is globally visible, even if it came from a module that is not visible. More...
|
|
ModuleOwnershipKind | getModuleOwnershipKind () const |
| Get the kind of module ownership for this declaration. More...
|
|
void | setModuleOwnershipKind (ModuleOwnershipKind MOK) |
| Set whether this declaration is hidden from name lookup. More...
|
|
unsigned | getIdentifierNamespace () const |
|
bool | isInIdentifierNamespace (unsigned NS) const |
|
bool | hasTagIdentifierNamespace () const |
|
DeclContext * | getLexicalDeclContext () |
| getLexicalDeclContext - The declaration context where this Decl was lexically declared (LexicalDC). More...
|
|
const DeclContext * | getLexicalDeclContext () const |
|
virtual bool | isOutOfLine () const |
| Determine whether this declaration is declared out of line (outside its semantic context). More...
|
|
void | setDeclContext (DeclContext *DC) |
| setDeclContext - Set both the semantic and lexical DeclContext to DC. More...
|
|
void | setLexicalDeclContext (DeclContext *DC) |
|
bool | isTemplated () const |
| Determine whether this declaration is a templated entity (whether it is. More...
|
|
bool | isDefinedOutsideFunctionOrMethod () const |
| isDefinedOutsideFunctionOrMethod - This predicate returns true if this scoped decl is defined outside the current function or method. More...
|
|
bool | isLexicallyWithinFunctionOrMethod () const |
| Returns true if this declaration lexically is inside a function. More...
|
|
const DeclContext * | getParentFunctionOrMethod () const |
| If this decl is defined inside a function/method/block it returns the corresponding DeclContext, otherwise it returns null. More...
|
|
DeclContext * | getParentFunctionOrMethod () |
|
virtual Decl * | getCanonicalDecl () |
| Retrieves the "canonical" declaration of the given declaration. More...
|
|
const Decl * | getCanonicalDecl () const |
|
bool | isCanonicalDecl () const |
| Whether this particular Decl is a canonical one. More...
|
|
redecl_range | redecls () const |
| Returns an iterator range for all the redeclarations of the same decl. More...
|
|
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. More...
|
|
const Decl * | getPreviousDecl () const |
| Retrieve the most recent declaration that declares the same entity as this declaration, or NULL if there is no previous declaration. More...
|
|
bool | isFirstDecl () const |
| True if this is the first declaration in its redeclaration chain. More...
|
|
Decl * | getMostRecentDecl () |
| Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). More...
|
|
const Decl * | getMostRecentDecl () const |
| Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). More...
|
|
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. More...
|
|
virtual bool | hasBody () const |
| Returns true if this Decl represents a declaration for a body of code, such as a function or method definition. More...
|
|
SourceLocation | getBodyRBrace () const |
| getBodyRBrace - Gets the right brace of the body, if a body exists. More...
|
|
bool | isTemplateParameter () const |
| isTemplateParameter - Determines whether this declaration is a template parameter. More...
|
|
bool | isTemplateParameterPack () const |
| isTemplateParameter - Determines whether this declaration is a template parameter pack. More...
|
|
bool | isParameterPack () const |
| Whether this declaration is a parameter pack. More...
|
|
bool | isTemplateDecl () const |
| returns true if this declaration is a template More...
|
|
bool | isFunctionOrFunctionTemplate () const |
| Whether this declaration is a function or function template. More...
|
|
TemplateDecl * | getDescribedTemplate () const |
| If this is a declaration that describes some template, this method returns that template declaration. More...
|
|
FunctionDecl * | getAsFunction () LLVM_READONLY |
| Returns the function itself, or the templated function if this is a function template. More...
|
|
const FunctionDecl * | getAsFunction () const |
|
void | setLocalExternDecl () |
| Changes the namespace of this declaration to reflect that it's a function-local extern declaration. More...
|
|
bool | isLocalExternDecl () |
| Determine whether this is a block-scope declaration with linkage. More...
|
|
void | setObjectOfFriendDecl (bool PerformFriendInjection=false) |
| Changes the namespace of this declaration to reflect that it's the object of a friend declaration. More...
|
|
FriendObjectKind | getFriendObjectKind () const |
| Determines whether this declaration is the object of a friend declaration and, if so, what kind. More...
|
|
void | setNonMemberOperator () |
| Specifies that this declaration is a C++ overloaded non-member. More...
|
|
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) const |
|
const FunctionType * | getFunctionType (bool BlocksToo=true) const |
| Looks through the Decl's underlying type to extract a FunctionType when possible. More...
|
|
| ~DeclContext () |
|
Decl::Kind | getDeclKind () const |
|
const char * | getDeclKindName () const |
|
DeclContext * | getParent () |
| getParent - Returns the containing DeclContext. More...
|
|
const DeclContext * | getParent () const |
|
DeclContext * | getLexicalParent () |
| getLexicalParent - Returns the containing lexical DeclContext. More...
|
|
const DeclContext * | getLexicalParent () const |
|
DeclContext * | getLookupParent () |
| Find the parent context of this context that will be used for unqualified name lookup. More...
|
|
const DeclContext * | getLookupParent () const |
|
ASTContext & | getParentASTContext () const |
|
bool | isClosure () const |
|
bool | isObjCContainer () const |
|
bool | isFunctionOrMethod () const |
|
bool | isLookupContext () const |
| Test whether the context supports looking up names. More...
|
|
bool | isFileContext () const |
|
bool | isTranslationUnit () const |
|
bool | isRecord () const |
|
bool | isNamespace () const |
|
bool | isStdNamespace () const |
|
bool | isInlineNamespace () const |
|
bool | isDependentContext () const |
| Determines whether this context is dependent on a template parameter. More...
|
|
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. More...
|
|
bool | isExternCContext () const |
| Determines whether this context or some of its ancestors is a linkage specification context that specifies C linkage. More...
|
|
const LinkageSpecDecl * | getExternCContext () const |
| Retrieve the nearest enclosing C linkage specification context. More...
|
|
bool | isExternCXXContext () const |
| Determines whether this context or some of its ancestors is a linkage specification context that specifies C++ linkage. More...
|
|
bool | Equals (const DeclContext *DC) const |
| Determine whether this declaration context is equivalent to the declaration context DC. More...
|
|
bool | Encloses (const DeclContext *DC) const |
| Determine whether this declaration context encloses the declaration context DC. More...
|
|
Decl * | getNonClosureAncestor () |
| Find the nearest non-closure ancestor of this context, i.e. More...
|
|
const Decl * | getNonClosureAncestor () 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. More...
|
|
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. More...
|
|
const DeclContext * | getRedeclContext () const |
|
DeclContext * | getEnclosingNamespaceContext () |
| Retrieve the nearest enclosing namespace context. More...
|
|
const DeclContext * | getEnclosingNamespaceContext () const |
|
RecordDecl * | getOuterLexicalRecordContext () |
| Retrieve the outermost lexically enclosing record context. More...
|
|
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. More...
|
|
void | collectAllContexts (SmallVectorImpl< DeclContext *> &Contexts) |
| Collects all of the declaration contexts that are semantically connected to this declaration context. More...
|
|
decl_range | decls () const |
| decls_begin/decls_end - Iterate over the declarations stored in this context. More...
|
|
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. More...
|
|
decl_iterator | noload_decls_begin () const |
|
decl_iterator | noload_decls_end () const |
|
void | addDecl (Decl *D) |
| Add the declaration D into this context. More...
|
|
void | addDeclInternal (Decl *D) |
| Add the declaration D into this context, but suppress searches for external declarations with the same name. More...
|
|
void | addHiddenDecl (Decl *D) |
| Add the declaration D to this context without modifying any lookup tables. More...
|
|
void | removeDecl (Decl *D) |
| Removes a declaration from this context. More...
|
|
bool | containsDecl (Decl *D) const |
| Checks whether a declaration is in this context. More...
|
|
lookup_result | lookup (DeclarationName Name) const |
| lookup - Find the declarations (if any) with the given Name in this context. More...
|
|
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. More...
|
|
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. More...
|
|
void | makeDeclVisibleInContext (NamedDecl *D) |
| Makes a declaration visible within this context. More...
|
|
lookups_range | lookups () const |
|
lookups_range | noload_lookups () const |
|
all_lookups_iterator | lookups_begin () const |
| Iterators over all possible lookups within this context. More...
|
|
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. More...
|
|
all_lookups_iterator | noload_lookups_end () const |
|
udir_range | using_directives () const |
| Returns iterator range [First, Last) of UsingDirectiveDecls stored within this context. More...
|
|
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). More...
|
|
StoredDeclsMap * | getLookupPtr () const |
| Retrieve the internal representation of the lookup structure. More...
|
|
StoredDeclsMap * | buildLookup () |
| Ensure the lookup structure is fully-built and return it. More...
|
|
bool | hasExternalLexicalStorage () const |
| Whether this DeclContext has external storage containing additional declarations that are lexically in this context. More...
|
|
void | setHasExternalLexicalStorage (bool ES=true) |
| State whether this DeclContext has external storage for declarations lexically in this context. More...
|
|
bool | hasExternalVisibleStorage () const |
| Whether this DeclContext has external storage containing additional declarations that are visible in this context. More...
|
|
void | setHasExternalVisibleStorage (bool ES=true) |
| State whether this DeclContext has external storage for declarations visible in this context. More...
|
|
bool | isDeclInLexicalTraversal (const Decl *D) const |
| Determine whether the given declaration is stored in the list of declarations lexically within this context. More...
|
|
bool | setUseQualifiedLookup (bool use=true) |
|
bool | shouldUseQualifiedLookup () const |
|
void | dumpDeclContext () const |
|
void | dumpLookups () const |
|
void | dumpLookups (llvm::raw_ostream &OS, bool DumpDecls=false, bool Deserialize=false) const |
|
|
enum | Kind |
| Lists the kind of concrete classes of Decl. More...
|
|
enum | IdentifierNamespace {
IDNS_Label = 0x0001,
IDNS_Tag = 0x0002,
IDNS_Type = 0x0004,
IDNS_Member = 0x0008,
IDNS_Namespace = 0x0010,
IDNS_Ordinary = 0x0020,
IDNS_ObjCProtocol = 0x0040,
IDNS_OrdinaryFriend = 0x0080,
IDNS_TagFriend = 0x0100,
IDNS_Using = 0x0200,
IDNS_NonMemberOperator = 0x0400,
IDNS_LocalExtern = 0x0800,
IDNS_OMPReduction = 0x1000
} |
| IdentifierNamespace - The different namespaces in which declarations may appear. More...
|
|
enum | ObjCDeclQualifier {
OBJC_TQ_None = 0x0,
OBJC_TQ_In = 0x1,
OBJC_TQ_Inout = 0x2,
OBJC_TQ_Out = 0x4,
OBJC_TQ_Bycopy = 0x8,
OBJC_TQ_Byref = 0x10,
OBJC_TQ_Oneway = 0x20,
OBJC_TQ_CSNullability = 0x40
} |
| ObjCDeclQualifier - 'Qualifiers' written next to the return and parameter types in method declarations. More...
|
|
enum | ModuleOwnershipKind : unsigned { ModuleOwnershipKind::Unowned,
ModuleOwnershipKind::Visible,
ModuleOwnershipKind::VisibleWhenImported,
ModuleOwnershipKind::ModulePrivate
} |
| The kind of ownership a declaration has, for visibility purposes. More...
|
|
enum | FriendObjectKind { FOK_None,
FOK_Declared,
FOK_Undeclared
} |
|
using | attr_iterator = AttrVec::const_iterator |
|
using | attr_range = llvm::iterator_range< attr_iterator > |
|
using | redecl_range = llvm::iterator_range< redecl_iterator > |
|
using | decl_range = llvm::iterator_range< decl_iterator > |
|
using | lookup_result = DeclContextLookupResult |
|
using | lookup_iterator = lookup_result::iterator |
|
using | lookups_range = llvm::iterator_range< all_lookups_iterator > |
|
using | udir_iterator_base = llvm::iterator_adaptor_base< udir_iterator, lookup_iterator, std::random_access_iterator_tag, UsingDirectiveDecl * > |
|
using | udir_range = llvm::iterator_range< udir_iterator > |
|
using | ddiag_range = llvm::iterator_range< DeclContext::ddiag_iterator > |
|
void * | operator new (std::size_t Size, const ASTContext &Ctx, unsigned ID, std::size_t Extra=0) |
| Allocate memory for a deserialized declaration. More...
|
|
void * | operator new (std::size_t Size, const ASTContext &Ctx, DeclContext *Parent, std::size_t Extra=0) |
| Allocate memory for a non-deserialized declaration. More...
|
|
| Decl (Kind DK, DeclContext *DC, SourceLocation L) |
|
| Decl (Kind DK, EmptyShell Empty) |
|
virtual | ~Decl () |
|
void | updateOutOfDate (IdentifierInfo &II) const |
| Update a potentially out-of-date declaration. More...
|
|
Linkage | getCachedLinkage () const |
|
void | setCachedLinkage (Linkage L) const |
|
bool | hasCachedLinkage () const |
|
void | setModulePrivate () |
| Specify that this declaration was marked as being private to the module in which it was defined. More...
|
|
void | setOwningModuleID (unsigned ID) |
| Set the owning module ID. More...
|
|
bool | hasLocalOwningModuleStorage () const |
|
virtual Decl * | getNextRedeclarationImpl () |
| Returns the next redeclaration or itself if this is the only decl. More...
|
|
virtual Decl * | getPreviousDeclImpl () |
| Implementation of getPreviousDecl(), to be overridden by any subclass that has a redeclaration chain. More...
|
|
virtual Decl * | getMostRecentDeclImpl () |
| Implementation of getMostRecentDecl(), to be overridden by any subclass that has a redeclaration chain. More...
|
|
ASTMutationListener * | getASTMutationListener () const |
|
| DeclContext (Decl::Kind K) |
|
static std::pair< Decl *, Decl * > | BuildDeclChain (ArrayRef< Decl *> Decls, bool FieldsAlreadyLoaded) |
| Build up a chain of declarations. More...
|
|
llvm::PointerIntPair< Decl *, 2, ModuleOwnershipKind > | NextInContextAndBits |
| The next declaration within the same lexical DeclContext. More...
|
|
unsigned | Access: 2 |
| Access - Used by C++ decls for the access specifier. More...
|
|
unsigned | FromASTFile: 1 |
| Whether this declaration was loaded from an AST file. More...
|
|
unsigned | IdentifierNamespace: 13 |
| IdentifierNamespace - This specifies what IDNS_* namespace this lives in. More...
|
|
unsigned | CacheValidAndLinkage: 3 |
| If 0, we have not computed the linkage of this declaration. More...
|
|
Decl * | FirstDecl = nullptr |
| FirstDecl - The first declaration stored within this declaration context. More...
|
|
Decl * | LastDecl = nullptr |
| LastDecl - The last declaration stored within this declaration context. More...
|
|