clang
3.9.0
|
ObjCCategoryDecl - Represents a category declaration. More...
#include <DeclObjC.h>
Public Member Functions | |
ObjCInterfaceDecl * | getClassInterface () |
const ObjCInterfaceDecl * | getClassInterface () const |
ObjCTypeParamList * | getTypeParamList () const |
Retrieve the type parameter list associated with this category or extension. More... | |
void | setTypeParamList (ObjCTypeParamList *TPL) |
Set the type parameters of this category. More... | |
ObjCCategoryImplDecl * | getImplementation () const |
void | setImplementation (ObjCCategoryImplDecl *ImplD) |
void | setProtocolList (ObjCProtocolDecl *const *List, unsigned Num, const SourceLocation *Locs, ASTContext &C) |
setProtocolList - Set the list of protocols that this interface implements. More... | |
const ObjCProtocolList & | getReferencedProtocols () const |
protocol_range | protocols () const |
protocol_iterator | protocol_begin () const |
protocol_iterator | protocol_end () const |
unsigned | protocol_size () const |
protocol_loc_range | protocol_locs () const |
protocol_loc_iterator | protocol_loc_begin () const |
protocol_loc_iterator | protocol_loc_end () const |
ObjCCategoryDecl * | getNextClassCategory () const |
ObjCCategoryDecl * | getNextClassCategoryRaw () const |
Retrieve the pointer to the next stored category (or extension), which may be hidden. More... | |
bool | IsClassExtension () const |
ivar_range | ivars () const |
ivar_iterator | ivar_begin () const |
ivar_iterator | ivar_end () const |
unsigned | ivar_size () const |
bool | ivar_empty () const |
SourceLocation | getCategoryNameLoc () const |
void | setCategoryNameLoc (SourceLocation Loc) |
void | setIvarLBraceLoc (SourceLocation Loc) |
SourceLocation | getIvarLBraceLoc () const |
void | setIvarRBraceLoc (SourceLocation Loc) |
SourceLocation | getIvarRBraceLoc () const |
![]() | |
ObjCContainerDecl (Kind DK, DeclContext *DC, IdentifierInfo *Id, SourceLocation nameLoc, SourceLocation atStartLoc) | |
prop_range | properties () const |
prop_iterator | prop_begin () const |
prop_iterator | prop_end () const |
instprop_range | instance_properties () const |
instprop_iterator | instprop_begin () const |
instprop_iterator | instprop_end () const |
classprop_range | class_properties () const |
classprop_iterator | classprop_begin () const |
classprop_iterator | classprop_end () const |
method_range | methods () const |
method_iterator | meth_begin () const |
method_iterator | meth_end () const |
instmeth_range | instance_methods () const |
instmeth_iterator | instmeth_begin () const |
instmeth_iterator | instmeth_end () const |
classmeth_range | class_methods () const |
classmeth_iterator | classmeth_begin () const |
classmeth_iterator | classmeth_end () const |
ObjCMethodDecl * | getMethod (Selector Sel, bool isInstance, bool AllowHidden=false) const |
ObjCMethodDecl * | getInstanceMethod (Selector Sel, bool AllowHidden=false) const |
ObjCMethodDecl * | getClassMethod (Selector Sel, bool AllowHidden=false) const |
bool | HasUserDeclaredSetterMethod (const ObjCPropertyDecl *P) const |
This routine returns 'true' if a user declared setter method was found in the class, its protocols, its super classes or categories. More... | |
ObjCIvarDecl * | getIvarDecl (IdentifierInfo *Id) const |
getIvarDecl - This method looks up an ivar in this ContextDecl. More... | |
ObjCPropertyDecl * | FindPropertyDeclaration (const IdentifierInfo *PropertyId, ObjCPropertyQueryKind QueryKind) const |
FindPropertyDeclaration - Finds declaration of the property given its name in 'PropertyId' and returns it. More... | |
virtual void | collectPropertiesToImplement (PropertyMap &PM, PropertyDeclOrder &PO) const |
This routine collects list of properties to be implemented in the class. More... | |
SourceLocation | getAtStartLoc () const |
void | setAtStartLoc (SourceLocation Loc) |
SourceRange | getAtEndRange () const |
void | setAtEndRange (SourceRange atEnd) |
SourceRange | getSourceRange () const override LLVM_READONLY |
![]() | |
IdentifierInfo * | getIdentifier () const |
getIdentifier - Get the identifier that names this declaration, if there is one. More... | |
StringRef | getName () const |
getName - Get the name of identifier for this declaration as a StringRef. More... | |
std::string | getNameAsString () const |
getNameAsString - 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). More... | |
void | printName (raw_ostream &os) const |
DeclarationName | getDeclName () const |
getDeclName - Get the actual, stored name of the declaration, which may be a special name. More... | |
void | setDeclName (DeclarationName N) |
Set the name of this declaration. More... | |
void | printQualifiedName (raw_ostream &OS) const |
printQualifiedName - Returns human-readable qualified name for declaration, like A::B::i, for i being member of namespace A::B. More... | |
void | printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const |
std::string | getQualifiedNameAsString () const |
virtual void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const |
getNameForDiagnostic - Appends a human-readable name for this declaration into the given stream. More... | |
bool | declarationReplaces (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. More... | |
bool | hasLinkage () const |
Determine whether this declaration has linkage. More... | |
bool | isHidden () const |
Determine whether this declaration is hidden from name lookup. More... | |
void | setHidden (bool Hide) |
Set whether this declaration is hidden from name lookup. More... | |
bool | isCXXClassMember () const |
Determine whether this declaration is a C++ class member. More... | |
bool | isCXXInstanceMember () const |
Determine whether the given declaration is an instance member of a C++ class. More... | |
Linkage | getLinkageInternal () const |
Determine what kind of linkage this entity has. More... | |
Linkage | getFormalLinkage () const |
Get the linkage from a semantic point of view. More... | |
bool | hasExternalFormalLinkage () const |
True if this decl has external linkage. More... | |
bool | isExternallyVisible () const |
Visibility | getVisibility () const |
Determines the visibility of this entity. More... | |
LinkageInfo | getLinkageAndVisibility () const |
Determines the linkage and visibility of this entity. More... | |
Optional< Visibility > | getExplicitVisibility (ExplicitVisibilityKind kind) const |
If visibility was explicitly specified for this declaration, return that visibility. More... | |
bool | isLinkageValid () const |
True if the computed linkage is valid. More... | |
bool | hasLinkageBeenComputed () const |
True if something has required us to compute the linkage of this declaration. More... | |
NamedDecl * | getUnderlyingDecl () |
Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl. More... | |
const NamedDecl * | getUnderlyingDecl () const |
NamedDecl * | getMostRecentDecl () |
const NamedDecl * | getMostRecentDecl () const |
ObjCStringFormatFamily | getObjCFStringFormattingFamily () const |
![]() | |
~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... | |
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) const |
Friends | |
class | ASTDeclReader |
class | ASTDeclWriter |
Additional Inherited Members | |
![]() | |
NamedDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N) | |
![]() | |
DeclContext (Decl::Kind K) | |
![]() | |
static std::pair< Decl *, Decl * > | BuildDeclChain (ArrayRef< Decl * > Decls, bool FieldsAlreadyLoaded) |
Build up a chain of declarations. More... | |
![]() | |
Decl * | FirstDecl |
FirstDecl - The first declaration stored within this declaration context. More... | |
Decl * | LastDecl |
LastDecl - The last declaration stored within this declaration context. More... | |
ObjCCategoryDecl - Represents a category declaration.
A category allows you to add methods to an existing class (without subclassing or modifying the original class interface or implementation:-). Categories don't allow you to add instance data. The following example adds "myMethod" to all NSView's within a process:
@interface NSView (MyViewMethods)
Categories also allow you to split the implementation of a class across several files (a feature more naturally supported in C++).
Categories were originally inspired by dynamic languages such as Common Lisp and Smalltalk. More traditional class-based languages (C++, Java) don't support this level of dynamism, which is both powerful and dangerous.
Definition at line 2171 of file DeclObjC.h.
Definition at line 2276 of file DeclObjC.h.
typedef llvm::iterator_range<specific_decl_iterator<ObjCIvarDecl> > clang::ObjCCategoryDecl::ivar_range |
Definition at line 2277 of file DeclObjC.h.
Definition at line 2242 of file DeclObjC.h.
Definition at line 2253 of file DeclObjC.h.
typedef llvm::iterator_range<protocol_loc_iterator> clang::ObjCCategoryDecl::protocol_loc_range |
Definition at line 2254 of file DeclObjC.h.
typedef llvm::iterator_range<protocol_iterator> clang::ObjCCategoryDecl::protocol_range |
Definition at line 2243 of file DeclObjC.h.
Definition at line 2301 of file DeclObjC.h.
References classofKind().
Definition at line 2302 of file DeclObjC.h.
Referenced by classof().
|
static |
Definition at line 1921 of file DeclObjC.cpp.
References clang::ASTContext::getASTMutationListener(), clang::ObjCInterfaceDecl::getCategoryListRaw(), clang::ObjCInterfaceDecl::hasDefinition(), and clang::ObjCInterfaceDecl::setCategoryListRaw().
Referenced by clang::Sema::ActOnStartCategoryImplementation(), clang::Sema::ActOnStartCategoryInterface(), and clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
static |
Definition at line 1947 of file DeclObjC.cpp.
References ID.
|
inline |
Definition at line 2293 of file DeclObjC.h.
Referenced by clang::ASTDeclWriter::VisitObjCCategoryDecl(), and clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2214 of file DeclObjC.h.
Referenced by clang::Sema::CheckCategoryVsClassMethodMatches(), CheckProtocolMethodDefs(), clang::Sema::DiagnoseUnimplementedProperties(), clang::ObjCIvarDecl::getContainingInterface(), clang::Sema::HandlePropertyInClassExtension(), clang::ASTDeclWriter::VisitObjCCategoryDecl(), clang::ASTNodeImporter::VisitObjCCategoryDecl(), and clang::ASTNodeImporter::VisitObjCCategoryImplDecl().
|
inline |
Definition at line 2215 of file DeclObjC.h.
ObjCCategoryImplDecl * ObjCCategoryDecl::getImplementation | ( | ) | const |
Definition at line 1954 of file DeclObjC.cpp.
Referenced by clang::Sema::ActOnStartCategoryImplementation(), clang::ASTNodeImporter::VisitObjCCategoryDecl(), and clang::ASTNodeImporter::VisitObjCCategoryImplDecl().
|
inline |
Definition at line 2297 of file DeclObjC.h.
Referenced by clang::ASTDeclWriter::VisitObjCCategoryDecl(), and clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2299 of file DeclObjC.h.
Referenced by clang::ASTDeclWriter::VisitObjCCategoryDecl(), and clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2266 of file DeclObjC.h.
|
inline |
Retrieve the pointer to the next stored category (or extension), which may be hidden.
Definition at line 2270 of file DeclObjC.h.
|
inline |
Definition at line 2238 of file DeclObjC.h.
|
inline |
Retrieve the type parameter list associated with this category or extension.
Definition at line 2219 of file DeclObjC.h.
Referenced by clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2274 of file DeclObjC.h.
References clang::NamedDecl::getIdentifier().
Referenced by clang::Sema::ActOnStartCategoryInterface(), clang::Sema::DiagnoseUnimplementedProperties(), clang::ObjCContainerDecl::FindPropertyDeclaration(), and clang::ObjCIvarDecl::getContainingInterface().
|
inline |
Definition at line 2280 of file DeclObjC.h.
References clang::DeclContext::decls_begin().
Referenced by ivar_empty(), ivar_size(), and ivars().
|
inline |
Definition at line 2289 of file DeclObjC.h.
References ivar_begin(), and ivar_end().
|
inline |
Definition at line 2283 of file DeclObjC.h.
References clang::DeclContext::decls_end().
Referenced by ivar_empty(), ivar_size(), and ivars().
|
inline |
Definition at line 2286 of file DeclObjC.h.
References distance(), ivar_begin(), and ivar_end().
|
inline |
Definition at line 2279 of file DeclObjC.h.
References ivar_begin(), and ivar_end().
|
inline |
Definition at line 2248 of file DeclObjC.h.
References clang::ObjCList< T >::begin().
Referenced by protocols(), and clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2251 of file DeclObjC.h.
References clang::ObjCList< T >::end().
Referenced by protocols(), and clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2259 of file DeclObjC.h.
References clang::ObjCProtocolList::loc_begin().
Referenced by protocol_locs(), and clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2262 of file DeclObjC.h.
References clang::ObjCProtocolList::loc_end().
Referenced by protocol_locs().
|
inline |
Definition at line 2256 of file DeclObjC.h.
References protocol_loc_begin(), and protocol_loc_end().
Referenced by clang::ASTDeclWriter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2252 of file DeclObjC.h.
References clang::ObjCListBase::size().
Referenced by clang::ASTDeclWriter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2245 of file DeclObjC.h.
References protocol_begin(), and protocol_end().
Referenced by clang::ObjCContainerDecl::FindPropertyDeclaration(), and clang::ASTDeclWriter::VisitObjCCategoryDecl().
|
inline |
Definition at line 2294 of file DeclObjC.h.
Referenced by clang::ASTDeclReader::VisitObjCCategoryDecl().
void ObjCCategoryDecl::setImplementation | ( | ObjCCategoryImplDecl * | ImplD | ) |
Definition at line 1959 of file DeclObjC.cpp.
Referenced by clang::Sema::ActOnStartCategoryImplementation(), clang::ASTNodeImporter::VisitObjCCategoryDecl(), and clang::ASTNodeImporter::VisitObjCCategoryImplDecl().
|
inline |
Definition at line 2296 of file DeclObjC.h.
Referenced by clang::ASTDeclReader::VisitObjCCategoryDecl().
|
inline |
Definition at line 2298 of file DeclObjC.h.
Referenced by clang::ASTDeclReader::VisitObjCCategoryDecl().
|
inline |
setProtocolList - Set the list of protocols that this interface implements.
Definition at line 2233 of file DeclObjC.h.
References clang::ObjCProtocolList::set().
Referenced by clang::Sema::ActOnStartCategoryInterface(), clang::ASTNodeImporter::VisitObjCCategoryDecl(), and clang::ASTDeclReader::VisitObjCCategoryDecl().
void ObjCCategoryDecl::setTypeParamList | ( | ObjCTypeParamList * | TPL | ) |
Set the type parameters of this category.
This function is used by the AST importer, which must import the type parameters after creating their DeclContext to avoid loops.
Definition at line 1963 of file DeclObjC.cpp.
Referenced by clang::ASTNodeImporter::VisitObjCCategoryDecl().
|
friend |
Definition at line 2304 of file DeclObjC.h.
|
friend |
Definition at line 2305 of file DeclObjC.h.