From 9baefc21bfe1bf49ab4a234e9f267f00abe0b1b1 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 21 Jul 2008 05:20:01 +0000 Subject: [PATCH] rename getProtocols -> getProtocol, as it only returns a single protocol. Simplify some code to use unconditional form of the protocol access list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53832 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/Type.h | 13 ++++++------- lib/Sema/SemaExpr.cpp | 11 ++++------- lib/Sema/SemaExprObjC.cpp | 2 +- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h index 03171b859b..e35f0aae11 100644 --- a/include/clang/AST/Type.h +++ b/include/clang/AST/Type.h @@ -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(this)->getProtocols(i); +/// getProtocol - Return the specified qualifying protocol. +inline ObjCProtocolDecl *ObjCInterfaceType::getProtocol(unsigned i) const { + return cast(this)->getProtocol(i); } diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 13f7ff9fb7..9813acbd04 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -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(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'. diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp index abbc7666e9..e8830bc0dd 100644 --- a/lib/Sema/SemaExprObjC.cpp +++ b/lib/Sema/SemaExprObjC.cpp @@ -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; } -- 2.40.0