Move method FindPropertyVisibleInPrimaryClass() from ObjCContainerDecl to ObjCInterfaceDecl.
Also change this method to lookup property declarations using DeclContext::lookup(). llvm-svn: 98574
This commit is contained in:
parent
ddcd1093a4
commit
d133a86aa3
|
@ -381,8 +381,6 @@ public:
|
|||
ObjCIvarDecl *getIvarDecl(IdentifierInfo *Id) const;
|
||||
|
||||
ObjCPropertyDecl *FindPropertyDeclaration(IdentifierInfo *PropertyId) const;
|
||||
ObjCPropertyDecl *FindPropertyVisibleInPrimaryClass(
|
||||
IdentifierInfo *PropertyId) const;
|
||||
|
||||
// Marks the end of the container.
|
||||
SourceRange getAtEndRange() const {
|
||||
|
@ -535,7 +533,10 @@ public:
|
|||
}
|
||||
|
||||
ObjCCategoryDecl* getClassExtension() const;
|
||||
|
||||
|
||||
ObjCPropertyDecl
|
||||
*FindPropertyVisibleInPrimaryClass(IdentifierInfo *PropertyId) const;
|
||||
|
||||
/// isSuperClassOf - Return true if this class is the specified class or is a
|
||||
/// super class of the specified interface class.
|
||||
bool isSuperClassOf(const ObjCInterfaceDecl *I) const {
|
||||
|
|
|
@ -159,22 +159,21 @@ ObjCContainerDecl::FindPropertyDeclaration(IdentifierInfo *PropertyId) const {
|
|||
|
||||
/// FindPropertyVisibleInPrimaryClass - Finds declaration of the property
|
||||
/// with name 'PropertyId' in the primary class; including those in protocols
|
||||
/// (direct or indirect) used by the promary class.
|
||||
/// FIXME: Convert to DeclContext lookup...
|
||||
/// (direct or indirect) used by the primary class.
|
||||
///
|
||||
ObjCPropertyDecl *
|
||||
ObjCContainerDecl::FindPropertyVisibleInPrimaryClass(
|
||||
ObjCInterfaceDecl::FindPropertyVisibleInPrimaryClass(
|
||||
IdentifierInfo *PropertyId) const {
|
||||
assert(isa<ObjCInterfaceDecl>(this) && "FindPropertyVisibleInPrimaryClass");
|
||||
for (prop_iterator I = prop_begin(), E = prop_end(); I != E; ++I)
|
||||
if ((*I)->getIdentifier() == PropertyId)
|
||||
return *I;
|
||||
const ObjCInterfaceDecl *OID = dyn_cast<ObjCInterfaceDecl>(this);
|
||||
if (ObjCPropertyDecl *PD =
|
||||
ObjCPropertyDecl::findPropertyDecl(cast<DeclContext>(this), PropertyId))
|
||||
return PD;
|
||||
|
||||
// Look through protocols.
|
||||
for (ObjCInterfaceDecl::protocol_iterator I = OID->protocol_begin(),
|
||||
E = OID->protocol_end(); I != E; ++I)
|
||||
for (ObjCInterfaceDecl::protocol_iterator
|
||||
I = protocol_begin(), E = protocol_end(); I != E; ++I)
|
||||
if (ObjCPropertyDecl *P = (*I)->FindPropertyDeclaration(PropertyId))
|
||||
return P;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue