forked from OSchip/llvm-project
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:
parent
419f699b55
commit
d7983b472e
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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'.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue