clang 10.0.0git

Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::ObjCMethodDecl Class Reference

ObjCMethodDecl - Represents an instance or class method declaration. More...

`#include "clang/AST/DeclObjC.h"`

Inheritance diagram for clang::ObjCMethodDecl:
[legend]
Collaboration diagram for clang::ObjCMethodDecl:
[legend]

## Classes
struct | GetTypeFn

## Public Types
enum | ImplementationControl { None, Required, Optional }
using | param_const_iterator = const ParmVarDecl *const *
using | param_iterator = ParmVarDecl *const *
using | param_range = llvm::iterator_range< param_iterator >
using | param_const_range = llvm::iterator_range< param_const_iterator >
using | param_type_iterator = llvm::mapped_iterator< param_const_iterator, GetTypeFn >
Public Types inherited from clang::NamedDecl
enum | ExplicitVisibilityKind { VisibilityForType, VisibilityForValue }
| Kinds of explicit visibility. More...
Public Types inherited from clang::Decl
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, IDNS_OMPMapper = 0x2000 }
| 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 >
Public Types inherited from clang::DeclContext
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 >

## Public Member Functions
ObjCMethodDecl * | getCanonicalDecl () override
| Retrieves the "canonical" declaration of the given declaration. More...
const ObjCMethodDecl * | getCanonicalDecl () const
ObjCDeclQualifier | getObjCDeclQualifier () const
void | setObjCDeclQualifier (ObjCDeclQualifier QV)
bool | hasRelatedResultType () const
| Determine whether this method has a result type that is related to the message receiver's type. More...
void | setRelatedResultType (bool RRT=true)
| Note whether this method has a related result type. More...
bool | isRedeclaration () const
| True if this is a method redeclaration in the same interface. More...
void | setIsRedeclaration (bool RD)
void | setAsRedeclaration (const ObjCMethodDecl *PrevMethod)
bool | hasRedeclaration () const
| True if redeclared in the same interface. More...
void | setHasRedeclaration (bool HRD) const
SourceLocation | getDeclaratorEndLoc () const
| Returns the location where the declarator ends. More...
SourceLocation | getBeginLoc () const LLVM_READONLY
SourceLocation | getEndLoc () const LLVM_READONLY
SourceRange | getSourceRange () const override LLVM_READONLY
| Source range that this declaration covers. More...
SourceLocation | getSelectorStartLoc () const
SourceLocation | getSelectorLoc (unsigned Index) const
void | getSelectorLocs (SmallVectorImpl< SourceLocation > &SelLocs) const
unsigned | getNumSelectorLocs () const
ObjCInterfaceDecl * | getClassInterface ()
const ObjCInterfaceDecl * | getClassInterface () const
Selector | getSelector () const
QualType | getReturnType () const
void | setReturnType (QualType T)
SourceRange | getReturnTypeSourceRange () const
QualType | getSendResultType () const
| Determine the type of an expression that sends a message to this function. More...
QualType | getSendResultType (QualType receiverType) const
| Determine the type of an expression that sends a message to this function with the given receiver type. More...
TypeSourceInfo * | getReturnTypeSourceInfo () const
void | setReturnTypeSourceInfo (TypeSourceInfo *TInfo)
unsigned | param_size () const
param_const_iterator | param_begin () const
param_const_iterator | param_end () const
param_iterator | param_begin ()
param_iterator | param_end ()
param_const_iterator | sel_param_end () const
ArrayRef< ParmVarDecl * > | parameters () const
ParmVarDecl * | getParamDecl (unsigned Idx)
const ParmVarDecl * | getParamDecl (unsigned Idx) const
void | setMethodParams (ASTContext &C, ArrayRef< ParmVarDecl *> Params, ArrayRef< SourceLocation > SelLocs=llvm::None)
| Sets the method's parameters and selector source locations. More...
param_type_iterator | param_type_begin () const
param_type_iterator | param_type_end () const
void | createImplicitParams (ASTContext &Context, const ObjCInterfaceDecl *ID)
| createImplicitParams - Used to lazily create the self and cmd implict parameters. More...
QualType | getSelfType (ASTContext &Context, const ObjCInterfaceDecl *OID, bool &selfIsPseudoStrong, bool &selfIsConsumed) const
ImplicitParamDecl * | getSelfDecl () const
void | setSelfDecl (ImplicitParamDecl *SD)
ImplicitParamDecl * | getCmdDecl () const
void | setCmdDecl (ImplicitParamDecl *CD)
ObjCMethodFamily | getMethodFamily () const
| Determines the family of this method. More...
bool | isInstanceMethod () const
void | setInstanceMethod (bool isInst)
bool | isVariadic () const
void | setVariadic (bool isVar)
bool | isClassMethod () const
bool | isPropertyAccessor () const
void | setPropertyAccessor (bool isAccessor)
bool | isSynthesizedAccessorStub () const
void | setSynthesizedAccessorStub (bool isSynthesizedAccessorStub)
bool | isDefined () const
void | setDefined (bool isDefined)
bool | isOverriding () const
| Whether this method overrides any other in the class hierarchy. More...
void | setOverriding (bool IsOver)
void | getOverriddenMethods (SmallVectorImpl< const ObjCMethodDecl *> &Overridden) const
| Return overridden methods for the given `Method`. More...
bool | hasSkippedBody () const
| True if the method was a definition but its body was skipped. More...
void | setHasSkippedBody (bool Skipped=true)
bool | isDirectMethod () const
| True if the method is tagged as objc_direct. More...
const ObjCPropertyDecl * | findPropertyDecl (bool CheckOverrides=true) const
| Returns the property associated with this method's selector. More...
void | setDeclImplementation (ImplementationControl ic)
ImplementationControl | getImplementationControl () const
bool | isOptional () const
bool | isThisDeclarationADesignatedInitializer () const
| Returns true if this specific method declaration is marked with the designated initializer attribute. More...
bool | isDesignatedInitializerForTheInterface (const ObjCMethodDecl **InitMethod=nullptr) const
| Returns true if the method selector resolves to a designated initializer in the class's interface. More...
bool | hasBody () const override
| Determine whether this method has a body. More...
Stmt * | getBody () const override
| Retrieve the body of this method, if it has one. More...
void | setLazyBody (uint64_t Offset)
CompoundStmt * | getCompoundBody ()
void | setBody (Stmt *B)
bool | isThisDeclarationADefinition () const
| Returns whether this specific method is a definition. More...
bool | definedInNSObject (const ASTContext &) const
| Is this method defined in the NSObject base class? More...
Public Member Functions inherited from clang::NamedDecl
IdentifierInfo * | getIdentifier () const
| Get the identifier that names this declaration, if there is one. More...
StringRef | getName () const
| Get the name of identifier for this declaration as a StringRef. More...
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). More...
virtual void | printName (raw_ostream &os) const
DeclarationName | getDeclName () const
| 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
| Returns a human-readable qualified name for this declaration, like A::B::i, for i being member of namespace A::B. More...
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. More...
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. 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 | 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
bool | isExternallyDeclarable () const
| Determine whether this declaration can be redeclared in a different translation unit. More...
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
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
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
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 | 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(), StringRef *RealizedPlatform=nullptr) 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 ()
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 previous 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...
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, 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. More...
Public Member Functions inherited from clang::DeclContext
| ~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
const BlockDecl * | getInnermostBlockDecl () const
| Return this DeclContext if it is a BlockDecl. More...
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...
bool | containsDeclAndLoad (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 (bool PreserveInternalState) 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) const
| 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) const
| 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) const
bool | shouldUseQualifiedLookup () const
void | dumpDeclContext () const
void | dumpLookups () const
void | dumpLookups (llvm::raw_ostream &OS, bool DumpDecls=false, bool Deserialize=false) const

## Static Public Member Functions
static ObjCMethodDecl * | Create (ASTContext &C, SourceLocation beginLoc, SourceLocation endLoc, Selector SelInfo, QualType T, TypeSourceInfo *ReturnTInfo, DeclContext *contextDecl, bool isInstance=true, bool isVariadic=false, bool isPropertyAccessor=false, bool isSynthesizedAccessorStub=false, bool isImplicitlyDeclared=false, bool isDefined=false, ImplementationControl impControl=None, bool HasRelatedResultType=false)
static ObjCMethodDecl * | CreateDeserialized (ASTContext &C, unsigned ID)
static bool | classof (const Decl *D)
static bool | classofKind (Kind K)
static DeclContext * | castToDeclContext (const ObjCMethodDecl *D)
static ObjCMethodDecl * | castFromDeclContext (const DeclContext *DC)
Static Public Member Functions inherited from clang::NamedDecl
static bool | classof (const Decl *D)
static bool | classofKind (Kind K)
Static Public Member Functions inherited from clang::Decl
static unsigned | getIdentifierNamespaceForKind (Kind DK)
static bool | isTagIdentifierNamespace (unsigned NS)
static void | add (Kind k)
static void | EnableStatistics ()
static void | PrintStats ()
static bool | classofKind (Kind K)
static DeclContext * | castToDeclContext (const Decl *)
static Decl * | castFromDeclContext (const DeclContext *)
static void | printGroup (Decl **Begin, unsigned NumDecls, raw_ostream &Out, const PrintingPolicy &Policy, unsigned Indentation=0)
Static Public Member Functions inherited from clang::DeclContext
static bool | classof (const Decl *D)
static bool | classof (const DeclContext *D)

## Friends
class | ASTDeclReader
class | ASTDeclWriter

## Additional Inherited Members
Protected Member Functions inherited from clang::NamedDecl
| NamedDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N)
Protected Member Functions inherited from clang::Decl
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 * | 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
Protected Member Functions inherited from clang::DeclContext
| DeclContext (Decl::Kind K)
Static Protected Member Functions inherited from clang::DeclContext
static std::pair< Decl *, Decl * > | BuildDeclChain (ArrayRef< Decl *> Decls, bool FieldsAlreadyLoaded)
| Build up a chain of declarations. More...
Protected Attributes inherited from clang::Decl
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: 14
| 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...
Protected Attributes inherited from clang::DeclContext
union {
DeclContextBitfields DeclContextBits
TagDeclBitfields TagDeclBits
EnumDeclBitfields EnumDeclBits
RecordDeclBitfields RecordDeclBits
OMPDeclareReductionDeclBitfields OMPDeclareReductionDeclBits
FunctionDeclBitfields FunctionDeclBits
CXXConstructorDeclBitfields CXXConstructorDeclBits
ObjCMethodDeclBitfields ObjCMethodDeclBits
ObjCContainerDeclBitfields ObjCContainerDeclBits
LinkageSpecDeclBitfields LinkageSpecDeclBits
BlockDeclBitfields BlockDeclBits
}; |
| This anonymous union stores the bits belonging to DeclContext and classes deriving from it. 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...

## Detailed Description

ObjCMethodDecl - Represents an instance or class method declaration.

ObjC methods can be declared within 4 contexts: class interfaces, categories, protocols, and class implementations. While C++ member functions leverage C syntax, Objective-C method syntax is modeled after Smalltalk (using colons to specify argument types/expressions). Here are some brief examples:

Setter/getter instance methods:

- (void)setMenu:(NSMenu *)menu;
- (NSMenu *)menu;

Instance method that takes 2 NSView arguments:

- (void)replaceSubview:(NSView *)oldView with:(NSView *)newView;

Getter class method:

- (NSMenu *)defaultMenu;

A selector represents a unique name for a method. The selector names for the above methods are setMenu:, menu, replaceSubview:with:, and defaultMenu.

Definition at line 138 of file DeclObjC.h.

## Member Typedef Documentation

## ◆ param_const_iterator

using clang::ObjCMethodDecl::param_const_iterator = const ParmVarDecl *const *

Definition at line 344 of file DeclObjC.h.

## ◆ param_const_range

using clang::ObjCMethodDecl::param_const_range = llvm::iterator_range<param_const_iterator>

Definition at line 347 of file DeclObjC.h.

## ◆ param_iterator

using clang::ObjCMethodDecl::param_iterator = ParmVarDecl *const *

Definition at line 345 of file DeclObjC.h.

## ◆ param_range

using clang::ObjCMethodDecl::param_range = llvm::iterator_range<param_iterator>

Definition at line 346 of file DeclObjC.h.

## ◆ param_type_iterator

using clang::ObjCMethodDecl::param_type_iterator = llvm::mapped_iterator<param_const_iterator, GetTypeFn>

Definition at line 394 of file DeclObjC.h.

## Member Enumeration Documentation

## ◆ ImplementationControl

enum clang::ObjCMethodDecl::ImplementationControl

Enumerator
None |
Required |
Optional |

Definition at line 143 of file DeclObjC.h.

## Member Function Documentation

## ◆ castFromDeclContext()

static ObjCMethodDecl* clang::ObjCMethodDecl::castFromDeclContext | ( | const DeclContext * | DC | ) |
| inline static

Definition at line 540 of file DeclObjC.h.

## ◆ castToDeclContext()

static DeclContext* clang::ObjCMethodDecl::castToDeclContext | ( | const ObjCMethodDecl * | D | ) |
| inline static

Definition at line 536 of file DeclObjC.h.

## ◆ classof()

static bool clang::ObjCMethodDecl::classof | ( | const Decl * | D | ) |
| inline static

Definition at line 533 of file DeclObjC.h.

References clang::Decl::getKind().

## ◆ classofKind()

static bool clang::ObjCMethodDecl::classofKind | ( | Kind | K | ) |
| inline static

Definition at line 534 of file DeclObjC.h.

## ◆ Create()

ObjCMethodDecl * ObjCMethodDecl::Create | ( | ASTContext & | C,
|  | SourceLocation | beginLoc,
|  | SourceLocation | endLoc,
|  | Selector | SelInfo,
|  | QualType | T,
|  | TypeSourceInfo * | ReturnTInfo,
|  | DeclContext * | contextDecl,
|  | bool | isInstance = `true`,
|  | bool | isVariadic = `false`,
|  | bool | isPropertyAccessor = `false`,
|  | bool | isSynthesizedAccessorStub = `false`,
|  | bool | isImplicitlyDeclared = `false`,
|  | bool | isDefined = `false`,
|  | ImplementationControl | impControl = `None`,
|  | bool | HasRelatedResultType = `false`
| ) |  |
| static

Definition at line 808 of file DeclObjC.cpp.

References clang::C.

Referenced by AllTrivialInitializers(), CheckKeyForObjCARCConversion(), clang::Sema::ProcessPropertyDecl(), and RedeclarePropertyAccessor().

## ◆ CreateDeserialized()

ObjCMethodDecl * ObjCMethodDecl::CreateDeserialized | ( | ASTContext & | C,
|  | unsigned | ID
| ) |  |
| static

Definition at line 821 of file DeclObjC.cpp.

References clang::C.

## ◆ createImplicitParams()

void ObjCMethodDecl::createImplicitParams | ( | ASTContext & | Context,
|  | const ObjCInterfaceDecl * | ID
| ) |  |

createImplicitParams - Used to lazily create the self and cmd implict parameters.

This must be called prior to using getSelfDecl() or getCmdDecl(). The call is ignored if the implicit parameters have already been created.

Definition at line 1134 of file DeclObjC.cpp.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod(), and clang::Sema::ProcessPropertyDecl().

## ◆ definedInNSObject()

bool ObjCMethodDecl::definedInNSObject | ( | const ASTContext & | Ctx | ) | const

Is this method defined in the NSObject base class?

Definition at line 835 of file DeclObjC.cpp.

References clang::Decl::getDeclContext(), and clang::ASTContext::getNSObjectName().

## ◆ findPropertyDecl()

const ObjCPropertyDecl * ObjCMethodDecl::findPropertyDecl | ( | bool | CheckOverrides = `true` | ) | const

Returns the property associated with this method's selector.

Note that even if this particular method is not marked as a property accessor, it is still possible for it to match a property declared in a superclass. Pass `false` if you only want to check the current class.

Local function that attempts to find a matching property within the given Objective-C container.

Definition at line 1313 of file DeclObjC.cpp.

References clang::Selector::getNumArgs().

Referenced by clang::arcmt::ObjCMigrateAction::BeginInvocation(), createObjCPropertyGetter(), clang::ObjCMethodCall::getAccessedProperty(), and clang::Sema::GetIvarBackingPropertyAccessor().

## ◆ getBeginLoc()

SourceLocation clang::ObjCMethodDecl::getBeginLoc | ( |  | ) | const
| inline

Definition at line 284 of file DeclObjC.h.

Referenced by BuildUniqueMethodName(), checkFoundationAPI(), getFunctionSourceLocation(), RedeclarePropertyAccessor(), ReplaceWithClasstype(), ReplaceWithInstancetype(), RewriteOneForwardClassDecl(), rewriteToObjCProperty(), and clang::CodeGen::CodeGenFunction::StartObjCMethod().

## ◆ getBody()

Stmt * ObjCMethodDecl::getBody | ( |  | ) | const
| override virtual

Retrieve the body of this method, if it has one.

Reimplemented from clang::Decl.

Definition at line 855 of file DeclObjC.cpp.

References clang::Decl::getASTContext().

Referenced by clang::CodeGen::CodeGenFunction::GenerateObjCMethod(), hasSuperInitCall(), clang::ASTDeclWriter::VisitObjCMethodDecl(), and clang::ASTNodeTraverser< ASTDumper, TextNodeDumper >::VisitObjCMethodDecl().

## ◆ getCanonicalDecl() [1/2]

ObjCMethodDecl * ObjCMethodDecl::getCanonicalDecl | ( |  | ) |
| override virtual

Retrieves the "canonical" declaration of the given declaration.

Reimplemented from clang::Decl.

Definition at line 957 of file DeclObjC.cpp.

References clang::Decl::getDeclContext(), clang::ObjCContainerDecl::getMethod(), and isInstanceMethod().

Referenced by clang::BodyFarm::getBody(), and clang::ObjCMethodCall::getRuntimeDefinition().

## ◆ getCanonicalDecl() [2/2]

const ObjCMethodDecl* clang::ObjCMethodDecl::getCanonicalDecl | ( |  | ) | const
| inline

Definition at line 244 of file DeclObjC.h.

References getCanonicalDecl().

## ◆ getClassInterface() [1/2]

ObjCInterfaceDecl * ObjCMethodDecl::getClassInterface | ( |  | ) |

Definition at line 1155 of file DeclObjC.cpp.

References clang::Decl::getDeclContext().

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), AddSuperSendCompletion(), clang::Sema::BuildIvarRefExpr(), BuildUniqueMethodName(), clang::ObjCMethodCall::canBeOverridenInSubclass(), clang::Sema::checkInitMethod(), CompareReturnTypes(), createObjCPropertyGetter(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), FilterMethodsByTypeBound(), clang::CodeGen::CodeGenFunction::GenerateObjCMethod(), clang::BodyFarm::getBody(), clang::Sema::GetIvarBackingPropertyAccessor(), getMethodReceiverIfKnownImmutable(), getReturnTypeForMethod(), isMethodContextSameForKindofLookup(), isUnitTest(), isWeakLinkedClass(), clang::Sema::LookupIvarInObjCMethod(), LookupMemberExpr(), LookupMethodInReceiverType(), clang::Sema::ProcessPropertyDecl(), ReplaceWithClasstype(), and shouldRunOnFunctionOrMethod().

## ◆ getClassInterface() [2/2]

const ObjCInterfaceDecl* clang::ObjCMethodDecl::getClassInterface | ( |  | ) | const
| inline

Definition at line 318 of file DeclObjC.h.

## ◆ getCmdDecl()

ImplicitParamDecl* clang::ObjCMethodDecl::getCmdDecl | ( |  | ) | const
| inline

Definition at line 417 of file DeclObjC.h.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), RedeclarePropertyAccessor(), clang::CodeGen::CodeGenFunction::StartObjCMethod(), and clang::ASTDeclWriter::VisitObjCMethodDecl().

## ◆ getCompoundBody()

CompoundStmt* clang::ObjCMethodDecl::getCompoundBody | ( |  | ) |
| inline

Definition at line 523 of file DeclObjC.h.

Referenced by cleanupDeallocOrFinalize().

## ◆ getDeclaratorEndLoc()

SourceLocation clang::ObjCMethodDecl::getDeclaratorEndLoc | ( |  | ) | const
| inline

Returns the location where the declarator ends.

It will be the location of ';' for a method declaration and the location of '{' for a method definition.

Definition at line 281 of file DeclObjC.h.

Referenced by rewriteToObjCProperty().

## ◆ getEndLoc()

SourceLocation ObjCMethodDecl::getEndLoc | ( |  | ) | const

Definition at line 991 of file DeclObjC.cpp.

References clang::Decl::getBody().

Referenced by AuditedType(), clang::CodeGen::CodeGenFunction::GenerateObjCGetter(), clang::CodeGen::CodeGenFunction::GenerateObjCSetter(), hasSuperInitCall(), RedeclarePropertyAccessor(), RewriteOneForwardClassDecl(), and clang::CodeGen::CodeGenFunction::StartObjCMethod().

## ◆ getImplementationControl()

ImplementationControl clang::ObjCMethodDecl::getImplementationControl | ( |  | ) | const
| inline

Definition at line 494 of file DeclObjC.h.

Referenced by clang::Sema::ParseObjCSelectorExpression(), RedeclarePropertyAccessor(), clang::Sema::WarnExactTypedMethods(), and Write__ivar_list_t_initializer().

## ◆ getMethodFamily()

ObjCMethodFamily ObjCMethodDecl::getMethodFamily | ( |  | ) | const

Determines the family of this method.

Definition at line 997 of file DeclObjC.cpp.

References clang::InvalidObjCMethodFamily, isInstanceMethod(), clang::Type::isObjCIdType(), clang::Type::isObjCSelType(), clang::DeclContext::ObjCMethodDeclBits, clang::OMF_alloc, clang::OMF_autorelease, clang::OMF_copy, clang::OMF_dealloc, clang::OMF_finalize, clang::OMF_init, clang::OMF_initialize, clang::OMF_mutableCopy, clang::OMF_new, clang::OMF_None, clang::OMF_performSelector, clang::OMF_release, clang::OMF_retain, clang::OMF_retainCount, and clang::OMF_self.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), AuditedType(), clang::Sema::CheckARCMethodDecl(), clang::Sema::CheckObjCMethodOverride(), clang::Sema::DiagnoseOwningPropertyGetterSynthesis(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), getMethodReceiverIfKnownImmutable(), isInitializationMethod(), clang::Sema::MaybeBindToTemporary(), RedeclarePropertyAccessor(), and shouldSkipFunction().

## ◆ getNumSelectorLocs()

unsigned clang::ObjCMethodDecl::getNumSelectorLocs | ( |  | ) | const
| inline

Definition at line 308 of file DeclObjC.h.

References clang::Selector::getNumArgs(), and clang::Selector::isUnarySelector().

## ◆ getObjCDeclQualifier()

ObjCDeclQualifier clang::ObjCMethodDecl::getObjCDeclQualifier | ( |  | ) | const
| inline

Definition at line 248 of file DeclObjC.h.

Referenced by clang::ASTContext::ObjCMethodsAreEqual().

## ◆ getOverriddenMethods()

void ObjCMethodDecl::getOverriddenMethods | ( | SmallVectorImpl< const ObjCMethodDecl *> & | Overridden | ) | const

Return overridden methods for the given `Method`.

An ObjC method is considered to override any method in the class's base classes (and base's categories), its protocols, or its categories' protocols, that has the same selector and is of the same kind (class or instance). A method in an implementation is not considered as overriding the same method in the interface or its categories.

Definition at line 1296 of file DeclObjC.cpp.

References collectOverriddenMethodsSlow(), clang::Decl::getDeclContext(), clang::ObjCContainerDecl::getMethod(), getSelector(), isInstanceMethod(), isOverriding(), and isRedeclaration().

Referenced by findExplicitInstancetypeDeclarer().

## ◆ getParamDecl() [1/2]

ParmVarDecl* clang::ObjCMethodDecl::getParamDecl | ( | unsigned | Idx | ) |
| inline

Definition at line 373 of file DeclObjC.h.

## ◆ getParamDecl() [2/2]

const ParmVarDecl* clang::ObjCMethodDecl::getParamDecl | ( | unsigned | Idx | ) | const
| inline

Definition at line 377 of file DeclObjC.h.

References clang::None.

## ◆ getReturnType()

QualType clang::ObjCMethodDecl::getReturnType | ( |  | ) | const
| inline

Definition at line 324 of file DeclObjC.h.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), AuditedType(), clang::Sema::CheckARCMethodDecl(), checkFoundationAPI(), clang::Sema::checkInitMethod(), clang::Sema::CheckObjCMethodOverride(), checkObjCMethodX86VectorTypes(), CompareReturnTypes(), createObjCPropertyGetter(), clang::Sema::DiagnosePropertyAccessorMismatch(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::comments::DeclInfo::fill(), findExplicitInstancetypeDeclarer(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), getReturnTypeForMethod(), hasIsEqualMethod(), isAcceptableMethodMismatch(), isUnitTest(), isWeakLinkedClass(), clang::Sema::MatchTwoMethodDeclarations(), mustSynthesizeSetterGetterMethod(), clang::ASTContext::ObjCMethodsAreEqual(), RedeclarePropertyAccessor(), ReplaceWithClasstype(), ReplaceWithInstancetype(), RewriteOneForwardClassDecl(), rewriteToObjCProperty(), clang::CodeGen::CodeGenFunction::StartObjCMethod(), clang::JSONNodeDumper::VisitObjCMethodDecl(), and clang::TextNodeDumper::VisitObjCMethodDecl().

## ◆ getReturnTypeSourceInfo()

TypeSourceInfo* clang::ObjCMethodDecl::getReturnTypeSourceInfo | ( |  | ) | const
| inline

Definition at line 338 of file DeclObjC.h.

Referenced by RedeclarePropertyAccessor(), ReplaceWithClasstype(), and ReplaceWithInstancetype().

## ◆ getReturnTypeSourceRange()

SourceRange ObjCMethodDecl::getReturnTypeSourceRange | ( |  | ) | const

Definition at line 1167 of file DeclObjC.cpp.

Referenced by clang::Sema::CheckARCMethodDecl(), clang::Sema::CheckObjCMethodOverride(), and checkObjCMethodX86VectorTypes().

## ◆ getSelector()

Selector clang::ObjCMethodDecl::getSelector | ( |  | ) | const
| inline

Definition at line 322 of file DeclObjC.h.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), addRedeclaredMethods(), AddSuperSendCompletion(), BuildUniqueMethodName(), checkFoundationAPI(), clang::Sema::CheckMessageArgumentTypes(), clang::Sema::CheckObjCBridgeRelatedConversions(), clang::Sema::CheckObjCMethodOverrides(), collectOverriddenMethodsSlow(), CompareReturnTypes(), createObjCPropertyGetter(), clang::Sema::DiagnoseMissingDesignatedInitOverrides(), clang::Sema::DiagnosePropertyAccessorMismatch(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), findExplicitInstancetypeDeclarer(), clang::BodyFarm::getBody(), clang::Sema::GetIvarBackingPropertyAccessor(), getOverriddenMethods(), isAcceptableMethodMismatch(), isAcceptableObjCMethod(), isImplicitSelf(), isUnitTest(), clang::Sema::IvarBacksCurrentMethodAccessor(), LookupMethodInReceiverType(), clang::MangleContext::mangleObjCMethodNameWithoutSize(), clang::Sema::ParseObjCSelectorExpression(), RedeclarePropertyAccessor(), ReplaceWithClasstype(), RewriteOneForwardClassDecl(), rewriteToObjCProperty(), clang::CodeGen::CodeGenFunction::StartObjCMethod(), clang::Sema::updateOutOfDateSelector(), clang::TextNodeDumper::VisitObjCPropertyRefExpr(), clang::TextNodeDumper::VisitObjCSubscriptRefExpr(), and clang::Sema::WarnExactTypedMethods().

## ◆ getSelectorLoc()

SourceLocation clang::ObjCMethodDecl::getSelectorLoc | ( | unsigned | Index | ) | const
| inline

Definition at line 296 of file DeclObjC.h.

Referenced by clang::Sema::CheckARCMethodDecl().

## ◆ getSelectorLocs()

void ObjCMethodDecl::getSelectorLocs | ( | SmallVectorImpl< SourceLocation > & | SelLocs | ) | const

Definition at line 884 of file DeclObjC.cpp.

Referenced by RedeclarePropertyAccessor().

## ◆ getSelectorStartLoc()

SourceLocation clang::ObjCMethodDecl::getSelectorStartLoc | ( |  | ) | const
| inline

Definition at line 290 of file DeclObjC.h.

Referenced by cleanupDeallocOrFinalize(), and rewriteToObjCProperty().

## ◆ getSelfDecl()

ImplicitParamDecl* clang::ObjCMethodDecl::getSelfDecl | ( |  | ) | const
| inline

Definition at line 415 of file DeclObjC.h.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), clang::CodeGen::CodeGenTypes::arrangeObjCMethodDeclaration(), CheckForModifiableLvalue(), createObjCPropertyGetter(), findRetainCycleOwner(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::Expr::isObjCSelfExpr(), clang::Sema::isSelfExpr(), RedeclarePropertyAccessor(), clang::CodeGen::CodeGenFunction::StartObjCMethod(), clang::Sema::tryCaptureObjCSelf(), tryRemoveRetainOfSelf(), clang::CodeGen::CodeGenFunction::TypeOfSelfObject(), and clang::ASTDeclWriter::VisitObjCMethodDecl().

## ◆ getSelfType()

QualType ObjCMethodDecl::getSelfType | ( | ASTContext & | Context,
|  | const ObjCInterfaceDecl * | OID,
|  | bool & | selfIsPseudoStrong,
|  | bool & | selfIsConsumed
| ) |  | const

Returns
  the type for `self` and set
  - selfIsPseudoStrong and
  - selfIsConsumed accordingly.

Definition at line 1089 of file DeclObjC.cpp.

## ◆ getSendResultType() [1/2]

QualType ObjCMethodDecl::getSendResultType | ( |  | ) | const

Determine the type of an expression that sends a message to this function.

This replaces the type parameters with the types they would get if the receiver was parameterless (e.g. it may replace the type parameter with 'id').

Definition at line 1174 of file DeclObjC.cpp.

References clang::Decl::getASTContext(), and clang::Result.

Referenced by clang::Sema::getMessageSendResultType().

## ◆ getSendResultType() [2/2]

QualType ObjCMethodDecl::getSendResultType | ( | QualType | receiverType | ) | const

Determine the type of an expression that sends a message to this function with the given receiver type.

Definition at line 1180 of file DeclObjC.cpp.

References clang::Decl::getASTContext(), clang::Decl::getDeclContext(), clang::QualType::getNonLValueExprType(), clang::Result, and clang::QualType::substObjCMemberType().

## ◆ getSourceRange()

SourceRange clang::ObjCMethodDecl::getSourceRange | ( |  | ) | const
| inline override virtual

Source range that this declaration covers.

Reimplemented from clang::Decl.

Definition at line 286 of file DeclObjC.h.

Referenced by cleanupDeallocOrFinalize(), and GCRewriteFinalize().

## ◆ hasBody()

bool clang::ObjCMethodDecl::hasBody | ( |  | ) | const
| inline override virtual

Determine whether this method has a body.

Reimplemented from clang::Decl.

Definition at line 516 of file DeclObjC.h.

References clang::LazyOffsetPtr< T, OffsT, Get >::isValid().

Referenced by AuditedType(), findDefiningRedecl(), clang::ASTReader::getOwningModuleNameForDiagnostic(), clang::ObjCMethodCall::getRuntimeDefinition(), and clang::ASTNodeTraverser< ASTDumper, TextNodeDumper >::VisitObjCMethodDecl().

## ◆ hasRedeclaration()

bool clang::ObjCMethodDecl::hasRedeclaration | ( |  | ) | const
| inline

True if redeclared in the same interface.

Definition at line 273 of file DeclObjC.h.

Referenced by clang::ASTDeclWriter::VisitObjCMethodDecl(), and clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ hasRelatedResultType()

bool clang::ObjCMethodDecl::hasRelatedResultType | ( |  | ) | const
| inline

Determine whether this method has a result type that is related to the message receiver's type.

Definition at line 258 of file DeclObjC.h.

Referenced by clang::Sema::CheckObjCMethodOverride(), clang::Sema::EmitRelatedResultTypeNote(), clang::Sema::EmitRelatedResultTypeNoteForReturn(), recordFixedType(), and RedeclarePropertyAccessor().

## ◆ hasSkippedBody()

bool clang::ObjCMethodDecl::hasSkippedBody | ( |  | ) | const
| inline

True if the method was a definition but its body was skipped.

Definition at line 474 of file DeclObjC.h.

Referenced by clang::ASTDeclWriter::VisitObjCMethodDecl().

## ◆ isClassMethod()

bool clang::ObjCMethodDecl::isClassMethod | ( |  | ) | const
| inline

Definition at line 431 of file DeclObjC.h.

References isInstanceMethod().

Referenced by CheckForModifiableLvalue(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::Sema::GetIvarBackingPropertyAccessor(), isWeakLinkedClass(), clang::Sema::LookupIvarInObjCMethod(), and clang::Sema::WarnExactTypedMethods().

## ◆ isDefined()

bool clang::ObjCMethodDecl::isDefined | ( |  | ) | const
| inline

Definition at line 449 of file DeclObjC.h.

Referenced by clang::Sema::LookupImplementedMethodInGlobalPool(), RedeclarePropertyAccessor(), and clang::ASTDeclWriter::VisitObjCMethodDecl().

## ◆ isDesignatedInitializerForTheInterface()

bool ObjCMethodDecl::isDesignatedInitializerForTheInterface | ( | const ObjCMethodDecl ** | InitMethod = `nullptr` | ) | const

Returns true if the method selector resolves to a designated initializer in the class's interface.

Parameters

  InitMethod | if non-null and the function returns true, it receives the method declaration that was marked with the designated initializer attribute.

Definition at line 843 of file DeclObjC.cpp.

References clang::Decl::getDeclContext(), and clang::OMF_init.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef().

## ◆ isDirectMethod()

bool ObjCMethodDecl::isDirectMethod | ( |  | ) | const

True if the method is tagged as objc_direct.

Definition at line 826 of file DeclObjC.cpp.

Referenced by isAcceptableMethodMismatch(), isWeakLinkedClass(), clang::Sema::MatchTwoMethodDeclarations(), clang::Sema::ParseObjCSelectorExpression(), and clang::CodeGen::CodeGenFunction::StartObjCMethod().

## ◆ isInstanceMethod()

bool clang::ObjCMethodDecl::isInstanceMethod | ( |  | ) | const
| inline

Definition at line 423 of file DeclObjC.h.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), clang::Sema::AddAnyMethodToGlobalPool(), addRedeclaredMethods(), AddSuperSendCompletion(), clang::Sema::AreMultipleMethodsInGlobalPool(), clang::Sema::BuildIvarRefExpr(), collectOverriddenMethodsSlow(), clang::Sema::DiagnoseClassExtensionDupMethods(), clang::comments::DeclInfo::fill(), findExplicitInstancetypeDeclarer(), GetAssumedMessageSendExprType(), getOverriddenMethods(), clang::index::getSymbolInfo(), isAcceptableMethodMismatch(), clang::Sema::IvarBacksCurrentMethodAccessor(), clang::Sema::LookupIvarInObjCMethod(), clang::MangleContext::mangleObjCMethodNameWithoutSize(), clang::TreeTransform< Derived >::RebuildObjCMessageExpr(), RedeclarePropertyAccessor(), ReplaceWithInstancetype(), RewriteOneForwardClassDecl(), clang::CodeGen::CodeGenFunction::StartObjCMethod(), clang::ASTDeclWriter::VisitObjCMethodDecl(), clang::JSONNodeDumper::VisitObjCMethodDecl(), and clang::TextNodeDumper::VisitObjCMethodDecl().

## ◆ isOptional()

bool clang::ObjCMethodDecl::isOptional | ( |  | ) | const
| inline

Definition at line 498 of file DeclObjC.h.

## ◆ isOverriding()

bool clang::ObjCMethodDecl::isOverriding | ( |  | ) | const
| inline

Whether this method overrides any other in the class hierarchy.

A method is said to override any method in the class's base classes, its protocols, or its categories' protocols, that has the same selector and is of the same kind (class or instance). A method in an implementation is not considered as overriding the same method in the interface or its categories.

Definition at line 459 of file DeclObjC.h.

Referenced by clang::ObjCMethodCall::canBeOverridenInSubclass(), collectOverriddenMethodsSlow(), getOverriddenMethods(), and clang::ASTDeclWriter::VisitObjCMethodDecl().

## ◆ isPropertyAccessor()

bool clang::ObjCMethodDecl::isPropertyAccessor | ( |  | ) | const
| inline

Definition at line 433 of file DeclObjC.h.

Referenced by clang::arcmt::ObjCMigrateAction::BeginInvocation(), clang::ObjCMethodCall::getAccessedProperty(), clang::BodyFarm::getBody(), clang::Sema::GetIvarBackingPropertyAccessor(), clang::index::getSymbolInfo(), clang::Sema::IvarBacksCurrentMethodAccessor(), clang::Sema::LookupImplementedMethodInGlobalPool(), RedeclarePropertyAccessor(), and clang::ASTDeclWriter::VisitObjCMethodDecl().

## ◆ isRedeclaration()

bool clang::ObjCMethodDecl::isRedeclaration | ( |  | ) | const
| inline

True if this is a method redeclaration in the same interface.

Definition at line 268 of file DeclObjC.h.

Referenced by getOverriddenMethods(), and clang::ASTDeclWriter::VisitObjCMethodDecl().

## ◆ isSynthesizedAccessorStub()

bool clang::ObjCMethodDecl::isSynthesizedAccessorStub | ( |  | ) | const
| inline

Definition at line 441 of file DeclObjC.h.

Referenced by clang::Sema::AtomicPropertySetterGetterRules(), createObjCPropertyGetter(), clang::Sema::DiagnoseOwningPropertyGetterSynthesis(), clang::Sema::MatchAllMethodDeclarations(), mustSynthesizeSetterGetterMethod(), and clang::ASTDeclWriter::VisitObjCMethodDecl().

## ◆ isThisDeclarationADefinition()

bool clang::ObjCMethodDecl::isThisDeclarationADefinition | ( |  | ) | const
| inline

Returns whether this specific method is a definition.

Definition at line 527 of file DeclObjC.h.

Referenced by clang::ASTNodeTraverser< ASTDumper, TextNodeDumper >::VisitObjCMethodDecl().

## ◆ isThisDeclarationADesignatedInitializer()

bool ObjCMethodDecl::isThisDeclarationADesignatedInitializer | ( |  | ) | const

Returns true if this specific method declaration is marked with the designated initializer attribute.

Definition at line 830 of file DeclObjC.cpp.

References clang::OMF_init.

## ◆ isVariadic()

bool clang::ObjCMethodDecl::isVariadic | ( |  | ) | const
| inline

Definition at line 428 of file DeclObjC.h.

Referenced by AddSuperSendCompletion(), clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), clang::Sema::CheckConflictingOverridingMethod(), getFunctionSourceLocation(), clang::ASTContext::ObjCMethodsAreEqual(), RedeclarePropertyAccessor(), clang::ASTDeclWriter::VisitObjCMethodDecl(), clang::JSONNodeDumper::VisitObjCMethodDecl(), clang::TextNodeDumper::VisitObjCMethodDecl(), clang::Sema::WarnConflictingTypedMethods(), and clang::Sema::WarnExactTypedMethods().

## ◆ param_begin() [1/2]

param_const_iterator clang::ObjCMethodDecl::param_begin | ( |  | ) | const
| inline

Definition at line 349 of file DeclObjC.h.

Referenced by AddSuperSendCompletion(), AuditedType(), clang::Sema::CheckConflictingOverridingMethod(), clang::Sema::CheckObjCMethodOverride(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::Sema::MatchTwoMethodDeclarations(), clang::Sema::mergeObjCMethodDecls(), clang::ASTContext::ObjCMethodsAreEqual(), rewriteToObjCProperty(), clang::CodeGen::CodeGenFunction::StartObjCMethod(), clang::Sema::WarnConflictingTypedMethods(), and clang::Sema::WarnExactTypedMethods().

## ◆ param_begin() [2/2]

param_iterator clang::ObjCMethodDecl::param_begin | ( |  | ) |
| inline

Definition at line 357 of file DeclObjC.h.

## ◆ param_end() [1/2]

param_const_iterator clang::ObjCMethodDecl::param_end | ( |  | ) | const
| inline

Definition at line 353 of file DeclObjC.h.

Referenced by AddSuperSendCompletion(), AuditedType(), clang::Sema::CheckConflictingOverridingMethod(), clang::Sema::CheckObjCMethodOverride(), clang::Sema::MatchTwoMethodDeclarations(), clang::Sema::mergeObjCMethodDecls(), clang::ASTContext::ObjCMethodsAreEqual(), clang::CodeGen::CodeGenFunction::StartObjCMethod(), clang::Sema::WarnConflictingTypedMethods(), and clang::Sema::WarnExactTypedMethods().

## ◆ param_end() [2/2]

param_iterator clang::ObjCMethodDecl::param_end | ( |  | ) |
| inline

Definition at line 358 of file DeclObjC.h.

## ◆ param_size()

unsigned clang::ObjCMethodDecl::param_size | ( |  | ) | const
| inline

Definition at line 342 of file DeclObjC.h.

Referenced by AddSuperSendCompletion(), clang::BodyFarm::getBody(), getReturnTypeForMethod(), clang::index::getSymbolInfo(), and clang::ASTContext::ObjCMethodsAreEqual().

## ◆ param_type_begin()

param_type_iterator clang::ObjCMethodDecl::param_type_begin | ( |  | ) | const
| inline

Definition at line 396 of file DeclObjC.h.

## ◆ param_type_end()

param_type_iterator clang::ObjCMethodDecl::param_type_end | ( |  | ) | const
| inline

Definition at line 400 of file DeclObjC.h.

## ◆ parameters()

ArrayRef<ParmVarDecl*> clang::ObjCMethodDecl::parameters | ( |  | ) | const
| inline

Definition at line 368 of file DeclObjC.h.

Referenced by clang::Sema::ActOnStartOfObjCMethodDef(), clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), CheckKeyForObjCARCConversion(), checkObjCMethodX86VectorTypes(), clang::Sema::checkRetainCycles(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::comments::DeclInfo::fill(), getReturnTypeForMethod(), hasIsEqualMethod(), isUnitTest(), isWeakLinkedClass(), clang::ObjCMethodCall::parameters(), RedeclarePropertyAccessor(), RewriteOneForwardClassDecl(), and clang::ASTNodeTraverser< ASTDumper, TextNodeDumper >::VisitObjCMethodDecl().

## ◆ sel_param_end()

param_const_iterator clang::ObjCMethodDecl::sel_param_end | ( |  | ) | const
| inline

Definition at line 362 of file DeclObjC.h.

## ◆ setAsRedeclaration()

void ObjCMethodDecl::setAsRedeclaration | ( | const ObjCMethodDecl * | PrevMethod | ) |

Definition at line 859 of file DeclObjC.cpp.

References clang::ASTContext::Allocate(), clang::C, clang::Decl::getASTContext(), setHasRedeclaration(), and clang::ASTContext::setObjCMethodRedeclaration().

## ◆ setBody()

void clang::ObjCMethodDecl::setBody | ( | Stmt * | B | ) |
| inline

Definition at line 524 of file DeclObjC.h.

## ◆ setCmdDecl()

void clang::ObjCMethodDecl::setCmdDecl | ( | ImplicitParamDecl * | CD | ) |
| inline

Definition at line 418 of file DeclObjC.h.

Referenced by RedeclarePropertyAccessor(), and clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setDeclImplementation()

void clang::ObjCMethodDecl::setDeclImplementation | ( | ImplementationControl | ic | ) |
| inline

Definition at line 490 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setDefined()

void clang::ObjCMethodDecl::setDefined | ( | bool | isDefined | ) |
| inline

Definition at line 450 of file DeclObjC.h.

Referenced by RedeclarePropertyAccessor(), clang::Sema::updateOutOfDateSelector(), and clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setHasRedeclaration()

void clang::ObjCMethodDecl::setHasRedeclaration | ( | bool | HRD | ) | const
| inline

Definition at line 274 of file DeclObjC.h.

Referenced by setAsRedeclaration(), and clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setHasSkippedBody()

void clang::ObjCMethodDecl::setHasSkippedBody | ( | bool | Skipped = `true` | ) |
| inline

Definition at line 475 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setInstanceMethod()

void clang::ObjCMethodDecl::setInstanceMethod | ( | bool | isInst | ) |
| inline

Definition at line 424 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setIsRedeclaration()

void clang::ObjCMethodDecl::setIsRedeclaration | ( | bool | RD | ) |
| inline

Definition at line 269 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setLazyBody()

void clang::ObjCMethodDecl::setLazyBody | ( | uint64_t | Offset | ) |
| inline

Definition at line 521 of file DeclObjC.h.

References Offset.

Referenced by clang::ASTReader::getOwningModuleNameForDiagnostic().

## ◆ setMethodParams()

void ObjCMethodDecl::setMethodParams | ( | ASTContext & | C,
|  | ArrayRef< ParmVarDecl *> | Params,
|  | ArrayRef< SourceLocation > | SelLocs = `llvm::None`
| ) |  |

Sets the method's parameters and selector source locations.

If the method is implicit (not coming from source) `SelLocs` is ignored.

Definition at line 890 of file DeclObjC.cpp.

References clang::Decl::getASTContext(), clang::Decl::getDeclContext(), clang::ObjCContainerDecl::getMethod(), clang::ASTContext::getObjCImplementation(), clang::ASTContext::getObjCMethodRedeclaration(), clang::hasStandardSelectorLocs(), clang::Decl::isImplicit(), isInstanceMethod(), clang::Decl::isInvalidDecl(), clang::None, and clang::SelLoc_NonStandard.

Referenced by RedeclarePropertyAccessor().

## ◆ setObjCDeclQualifier()

void clang::ObjCMethodDecl::setObjCDeclQualifier | ( | ObjCDeclQualifier | QV | ) |
| inline

Definition at line 252 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setOverriding()

void clang::ObjCMethodDecl::setOverriding | ( | bool | IsOver | ) |
| inline

Definition at line 460 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setPropertyAccessor()

void clang::ObjCMethodDecl::setPropertyAccessor | ( | bool | isAccessor | ) |
| inline

Definition at line 437 of file DeclObjC.h.

Referenced by clang::Sema::ProcessPropertyDecl(), and clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setRelatedResultType()

void clang::ObjCMethodDecl::setRelatedResultType | ( | bool | RRT = `true` | ) |
| inline

Note whether this method has a related result type.

Definition at line 263 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setReturnType()

void clang::ObjCMethodDecl::setReturnType | ( | QualType | T | ) |
| inline

Definition at line 325 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setReturnTypeSourceInfo()

void clang::ObjCMethodDecl::setReturnTypeSourceInfo | ( | TypeSourceInfo * | TInfo | ) |
| inline

Definition at line 339 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setSelfDecl()

void clang::ObjCMethodDecl::setSelfDecl | ( | ImplicitParamDecl * | SD | ) |
| inline

Definition at line 416 of file DeclObjC.h.

Referenced by RedeclarePropertyAccessor(), and clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setSynthesizedAccessorStub()

void clang::ObjCMethodDecl::setSynthesizedAccessorStub | ( | bool | isSynthesizedAccessorStub | ) |
| inline

Definition at line 445 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## ◆ setVariadic()

void clang::ObjCMethodDecl::setVariadic | ( | bool | isVar | ) |
| inline

Definition at line 429 of file DeclObjC.h.

Referenced by clang::ASTDeclReader::VisitObjCMethodDecl().

## Friends And Related Function Documentation

## ◆ ASTDeclReader

friend class ASTDeclReader
| friend

Definition at line 228 of file DeclObjC.h.

## ◆ ASTDeclWriter

friend class ASTDeclWriter
| friend

Definition at line 229 of file DeclObjC.h.

The documentation for this class was generated from the following files:

- include/clang/AST/DeclObjC.h
- lib/AST/DeclObjC.cpp