rename getProtocols -> getProtocol, as it only returns a single

protocol.  Simplify some code to use unconditional form of the
protocol access list.

llvm-svn: 53832
This commit is contained in:
Chris Lattner 2008-07-21 05:20:01 +00:00
parent 419f699b55
commit d7983b472e
3 changed files with 11 additions and 15 deletions

View File

@ -1130,9 +1130,8 @@ public:
/// interface type, or 0 if there are none.
inline unsigned getNumProtocols() const;
/// getProtocols - Return the specified qualifying protocol.
inline ObjCProtocolDecl *getProtocols(unsigned i) const;
/// getProtocol - Return the specified qualifying protocol.
inline ObjCProtocolDecl *getProtocol(unsigned i) const;
virtual void getAsStringInternal(std::string &InnerString) const;
@ -1162,7 +1161,7 @@ class ObjCQualifiedInterfaceType : public ObjCInterfaceType,
friend class ASTContext; // ASTContext creates these.
public:
ObjCProtocolDecl *getProtocols(unsigned i) const {
ObjCProtocolDecl *getProtocol(unsigned i) const {
return Protocols[i];
}
unsigned getNumProtocols() const {
@ -1207,9 +1206,9 @@ inline unsigned ObjCInterfaceType::getNumProtocols() const {
return 0;
}
/// getProtocols - Return the specified qualifying protocol.
inline ObjCProtocolDecl *ObjCInterfaceType::getProtocols(unsigned i) const {
return cast<ObjCQualifiedInterfaceType>(this)->getProtocols(i);
/// getProtocol - Return the specified qualifying protocol.
inline ObjCProtocolDecl *ObjCInterfaceType::getProtocol(unsigned i) const {
return cast<ObjCQualifiedInterfaceType>(this)->getProtocol(i);
}

View File

@ -654,13 +654,10 @@ ActOnMemberReferenceExpr(ExprTy *Base, SourceLocation OpLoc,
return new ObjCPropertyRefExpr(PD, PD->getType(), MemberLoc, BaseExpr);
// Lastly, check protocols on qualified interfaces.
if (const ObjCQualifiedInterfaceType *QIT =
dyn_cast<ObjCQualifiedInterfaceType>(IFTy)) {
for (unsigned i = 0; i != QIT->getNumProtocols(); ++i)
if (ObjCPropertyDecl *PD =
QIT->getProtocols(i)->FindPropertyDeclaration(&Member))
return new ObjCPropertyRefExpr(PD, PD->getType(), MemberLoc,BaseExpr);
}
for (ObjCInterfaceType::qual_iterator I = IFTy->qual_begin(),
E = IFTy->qual_end(); I != E; ++I)
if (ObjCPropertyDecl *PD = (*I)->FindPropertyDeclaration(&Member))
return new ObjCPropertyRefExpr(PD, PD->getType(), MemberLoc, BaseExpr);
}
// Handle 'field access' to vectors, such as 'V.xx'.

View File

@ -284,7 +284,7 @@ Sema::ExprResult Sema::ActOnInstanceMessage(
if (!Method) {
// search protocols
for (unsigned i = 0; i < QIT->getNumProtocols(); i++) {
ObjCProtocolDecl *PDecl = QIT->getProtocols(i);
ObjCProtocolDecl *PDecl = QIT->getProtocol(i);
if (PDecl && (Method = PDecl->lookupInstanceMethod(Sel)))
break;
}