clang
3.9.0
|
ObjCImplementationDecl - Represents a class definition - this is where method definitions are specified. More...
#include <DeclObjC.h>
Public Member Functions | |
init_range | inits () |
init_const_range | inits () const |
init_iterator | init_begin () |
init_begin() - Retrieve an iterator to the first initializer. More... | |
init_const_iterator | init_begin () const |
begin() - Retrieve an iterator to the first initializer. More... | |
init_iterator | init_end () |
init_end() - Retrieve an iterator past the last initializer. More... | |
init_const_iterator | init_end () const |
end() - Retrieve an iterator past the last initializer. More... | |
unsigned | getNumIvarInitializers () const |
getNumArgs - Number of ivars which must be initialized. More... | |
void | setNumIvarInitializers (unsigned numNumIvarInitializers) |
void | setIvarInitializers (ASTContext &C, CXXCtorInitializer **initializers, unsigned numInitializers) |
bool | hasNonZeroConstructors () const |
Do any of the ivars of this class (not counting its base classes) require construction other than zero-initialization? More... | |
void | setHasNonZeroConstructors (bool val) |
bool | hasDestructors () const |
Do any of the ivars of this class (not counting its base classes) require non-trivial destruction? More... | |
void | setHasDestructors (bool val) |
IdentifierInfo * | getIdentifier () const |
getIdentifier - Get the identifier that names the class interface associated with this implementation. More... | |
StringRef | getName () const |
getName - Get the name of identifier for the class interface associated with this implementation as a StringRef. More... | |
std::string | getNameAsString () const |
Get the name of the class associated with this interface. More... | |
StringRef | getObjCRuntimeNameAsString () const |
Produce a name to be used for class's metadata. More... | |
const ObjCInterfaceDecl * | getSuperClass () const |
ObjCInterfaceDecl * | getSuperClass () |
SourceLocation | getSuperClassLoc () const |
void | setSuperClass (ObjCInterfaceDecl *superCls) |
void | setIvarLBraceLoc (SourceLocation Loc) |
SourceLocation | getIvarLBraceLoc () const |
void | setIvarRBraceLoc (SourceLocation Loc) |
SourceLocation | getIvarRBraceLoc () const |
ivar_range | ivars () const |
ivar_iterator | ivar_begin () const |
ivar_iterator | ivar_end () const |
unsigned | ivar_size () const |
bool | ivar_empty () const |
![]() | |
const ObjCInterfaceDecl * | getClassInterface () const |
ObjCInterfaceDecl * | getClassInterface () |
void | setClassInterface (ObjCInterfaceDecl *IFace) |
void | addInstanceMethod (ObjCMethodDecl *method) |
void | addClassMethod (ObjCMethodDecl *method) |
void | addPropertyImplementation (ObjCPropertyImplDecl *property) |
ObjCPropertyImplDecl * | FindPropertyImplDecl (IdentifierInfo *propertyId, ObjCPropertyQueryKind queryKind) const |
FindPropertyImplDecl - This method looks up a previous ObjCPropertyImplDecl added to the list of those properties @synthesized/@dynamic in this category @implementation block. More... | |
ObjCPropertyImplDecl * | FindPropertyImplIvarDecl (IdentifierInfo *ivarId) const |
FindPropertyImplIvarDecl - This method lookup the ivar in the list of properties implemented in this @implementation block and returns the implemented property that uses it. More... | |
propimpl_range | property_impls () const |
propimpl_iterator | propimpl_begin () const |
propimpl_iterator | propimpl_end () 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 | |
![]() | |
ObjCImplDecl (Kind DK, DeclContext *DC, ObjCInterfaceDecl *classInterface, SourceLocation nameLoc, SourceLocation atStartLoc) | |
![]() | |
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... | |
ObjCImplementationDecl - Represents a class definition - this is where method definitions are specified.
For example:
In a non-fragile runtime, instance variables can appear in the class interface, class extensions (nameless categories), and in the implementation itself, as well as being synthesized as backing storage for properties.
In a fragile runtime, instance variables are specified in the class interface, not in the implementation. Nevertheless (for legacy reasons), we allow instance variables to be specified in the implementation. When specified, they need to be identical to the interface.
Definition at line 2461 of file DeclObjC.h.
typedef CXXCtorInitializer* const* clang::ObjCImplementationDecl::init_const_iterator |
init_const_iterator - Iterates through the ivar initializer list.
Definition at line 2511 of file DeclObjC.h.
typedef llvm::iterator_range<init_const_iterator> clang::ObjCImplementationDecl::init_const_range |
Definition at line 2514 of file DeclObjC.h.
init_iterator - Iterates through the ivar initializer list.
Definition at line 2508 of file DeclObjC.h.
typedef llvm::iterator_range<init_iterator> clang::ObjCImplementationDecl::init_range |
Definition at line 2513 of file DeclObjC.h.
Definition at line 2598 of file DeclObjC.h.
typedef llvm::iterator_range<specific_decl_iterator<ObjCIvarDecl> > clang::ObjCImplementationDecl::ivar_range |
Definition at line 2599 of file DeclObjC.h.
Definition at line 2615 of file DeclObjC.h.
References classofKind().
Definition at line 2616 of file DeclObjC.h.
Referenced by classof().
|
static |
Definition at line 2089 of file DeclObjC.cpp.
References clang::ObjCInterfaceDecl::getDefinition(), and clang::ObjCInterfaceDecl::hasDefinition().
Referenced by clang::Sema::ActOnStartClassImplementation(), and clang::ASTNodeImporter::VisitObjCImplementationDecl().
|
static |
Definition at line 2105 of file DeclObjC.cpp.
References ID.
|
inline |
getIdentifier - Get the identifier that names the class interface associated with this implementation.
Definition at line 2562 of file DeclObjC.h.
References clang::ObjCImplDecl::getClassInterface(), and clang::NamedDecl::getIdentifier().
Referenced by getName().
|
inline |
Definition at line 2594 of file DeclObjC.h.
Referenced by clang::ASTDeclWriter::VisitObjCImplementationDecl(), and clang::ASTNodeImporter::VisitObjCImplementationDecl().
|
inline |
Definition at line 2596 of file DeclObjC.h.
Referenced by clang::ASTDeclWriter::VisitObjCImplementationDecl(), and clang::ASTNodeImporter::VisitObjCImplementationDecl().
|
inline |
getName - Get the name of identifier for the class interface associated with this implementation as a StringRef.
Definition at line 2571 of file DeclObjC.h.
References getIdentifier(), and clang::IdentifierInfo::getName().
Referenced by getNameAsString(), getObjCRuntimeNameAsString(), and clang::operator<<().
|
inline |
Get the name of the class associated with this interface.
Definition at line 2579 of file DeclObjC.h.
References getName().
|
inline |
getNumArgs - Number of ivars which must be initialized.
Definition at line 2538 of file DeclObjC.h.
StringRef ObjCImplementationDecl::getObjCRuntimeNameAsString | ( | ) | const |
Produce a name to be used for class's metadata.
It comes either via class's objc_runtime_name attribute or class name.
Definition at line 1473 of file DeclObjC.cpp.
References clang::ObjCImplDecl::getClassInterface(), getName(), and ID.
|
inline |
Definition at line 2587 of file DeclObjC.h.
Referenced by clang::Sema::CheckImplementationIvars(), clang::ASTDeclWriter::VisitObjCImplementationDecl(), and clang::ASTNodeImporter::VisitObjCImplementationDecl().
|
inline |
Definition at line 2588 of file DeclObjC.h.
|
inline |
Definition at line 2589 of file DeclObjC.h.
Referenced by clang::ASTDeclWriter::VisitObjCImplementationDecl(), and clang::ASTNodeImporter::VisitObjCImplementationDecl().
|
inline |
Do any of the ivars of this class (not counting its base classes) require non-trivial destruction?
Definition at line 2557 of file DeclObjC.h.
Referenced by clang::ASTDeclWriter::VisitObjCImplementationDecl().
|
inline |
Do any of the ivars of this class (not counting its base classes) require construction other than zero-initialization?
Definition at line 2552 of file DeclObjC.h.
Referenced by clang::ASTDeclWriter::VisitObjCImplementationDecl().
|
inline |
init_begin() - Retrieve an iterator to the first initializer.
Definition at line 2522 of file DeclObjC.h.
Referenced by AllTrivialInitializers(), init_end(), inits(), and clang::ASTDeclWriter::VisitObjCImplementationDecl().
ObjCImplementationDecl::init_const_iterator ObjCImplementationDecl::init_begin | ( | ) | const |
begin() - Retrieve an iterator to the first initializer.
Definition at line 2124 of file DeclObjC.cpp.
References clang::LazyOffsetPtr< T, OffsT, Get >::get().
|
inline |
init_end() - Retrieve an iterator past the last initializer.
Definition at line 2530 of file DeclObjC.h.
References init_begin().
Referenced by AllTrivialInitializers(), inits(), and clang::ASTDeclWriter::VisitObjCImplementationDecl().
|
inline |
end() - Retrieve an iterator past the last initializer.
Definition at line 2534 of file DeclObjC.h.
References init_begin().
|
inline |
Definition at line 2516 of file DeclObjC.h.
References init_begin(), and init_end().
Referenced by clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod().
|
inline |
Definition at line 2517 of file DeclObjC.h.
References init_begin(), and init_end().
|
inline |
Definition at line 2602 of file DeclObjC.h.
References clang::DeclContext::decls_begin().
Referenced by ivar_empty(), ivar_size(), and ivars().
|
inline |
Definition at line 2611 of file DeclObjC.h.
References ivar_begin(), and ivar_end().
|
inline |
Definition at line 2605 of file DeclObjC.h.
References clang::DeclContext::decls_end().
Referenced by ivar_empty(), ivar_size(), and ivars().
|
inline |
Definition at line 2608 of file DeclObjC.h.
References distance(), ivar_begin(), and ivar_end().
|
inline |
Definition at line 2601 of file DeclObjC.h.
References ivar_begin(), and ivar_end().
|
inline |
Definition at line 2558 of file DeclObjC.h.
Referenced by clang::ASTDeclReader::VisitObjCImplementationDecl().
|
inline |
Definition at line 2553 of file DeclObjC.h.
Referenced by clang::ASTDeclReader::VisitObjCImplementationDecl().
void ObjCImplementationDecl::setIvarInitializers | ( | ASTContext & | C, |
CXXCtorInitializer ** | initializers, | ||
unsigned | numInitializers | ||
) |
Definition at line 2110 of file DeclObjC.cpp.
Referenced by clang::Sema::SetIvarInitializers().
|
inline |
Definition at line 2593 of file DeclObjC.h.
Referenced by clang::ASTDeclReader::VisitObjCImplementationDecl().
|
inline |
Definition at line 2595 of file DeclObjC.h.
Referenced by clang::ASTDeclReader::VisitObjCImplementationDecl().
|
inline |
Definition at line 2542 of file DeclObjC.h.
|
inline |
Definition at line 2591 of file DeclObjC.h.
Referenced by clang::ASTDeclReader::VisitObjCImplementationDecl().
|
friend |
Definition at line 2618 of file DeclObjC.h.
|
friend |
Definition at line 2619 of file DeclObjC.h.