From 3216dcdebb8ae0f2993ac5f5249caa217444bacf Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Tue, 26 Aug 2008 06:53:45 +0000 Subject: [PATCH] constify ObjC*::getClassMethod,getInstanceMethod No (intended) functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55362 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/DeclObjC.h | 20 ++++++++++---------- lib/AST/DeclObjC.cpp | 26 ++++++++++++++++---------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/include/clang/AST/DeclObjC.h b/include/clang/AST/DeclObjC.h index 0cbe4241f9..84abdfd802 100644 --- a/include/clang/AST/DeclObjC.h +++ b/include/clang/AST/DeclObjC.h @@ -418,7 +418,7 @@ public: // Get the local instance method declared in this interface. - ObjCMethodDecl *getInstanceMethod(Selector Sel) { + ObjCMethodDecl *getInstanceMethod(Selector Sel) const { for (instmeth_iterator I = instmeth_begin(), E = instmeth_end(); I != E; ++I) { if ((*I)->getSelector() == Sel) @@ -427,7 +427,7 @@ public: return 0; } // Get the local class method declared in this interface. - ObjCMethodDecl *getClassMethod(Selector Sel) { + ObjCMethodDecl *getClassMethod(Selector Sel) const { for (classmeth_iterator I = classmeth_begin(), E = classmeth_end(); I != E; ++I) { if ((*I)->getSelector() == Sel) @@ -645,7 +645,7 @@ public: } // Get the local instance method declared in this interface. - ObjCMethodDecl *getInstanceMethod(Selector Sel) { + ObjCMethodDecl *getInstanceMethod(Selector Sel) const { for (instmeth_iterator I = instmeth_begin(), E = instmeth_end(); I != E; ++I) { if ((*I)->getSelector() == Sel) @@ -654,7 +654,7 @@ public: return 0; } // Get the local class method declared in this interface. - ObjCMethodDecl *getClassMethod(Selector Sel) { + ObjCMethodDecl *getClassMethod(Selector Sel) const { for (classmeth_iterator I = classmeth_begin(), E = classmeth_end(); I != E; ++I) { if ((*I)->getSelector() == Sel) @@ -884,7 +884,7 @@ public: } // Get the local instance method declared in this interface. - ObjCMethodDecl *getInstanceMethod(Selector Sel) { + ObjCMethodDecl *getInstanceMethod(Selector Sel) const { for (instmeth_iterator I = instmeth_begin(), E = instmeth_end(); I != E; ++I) { if ((*I)->getSelector() == Sel) @@ -893,7 +893,7 @@ public: return 0; } // Get the local class method declared in this interface. - ObjCMethodDecl *getClassMethod(Selector Sel) { + ObjCMethodDecl *getClassMethod(Selector Sel) const { for (classmeth_iterator I = classmeth_begin(), E = classmeth_end(); I != E; ++I) { if ((*I)->getSelector() == Sel) @@ -971,10 +971,10 @@ public: ClassMethods.push_back(method); } // Get the instance method definition for this implementation. - ObjCMethodDecl *getInstanceMethod(Selector Sel); + ObjCMethodDecl *getInstanceMethod(Selector Sel) const; // Get the class method definition for this implementation. - ObjCMethodDecl *getClassMethod(Selector Sel); + ObjCMethodDecl *getClassMethod(Selector Sel) const; void addPropertyImplementation(ObjCPropertyImplDecl *property) { PropertyImplementations.push_back(property); @@ -1114,10 +1114,10 @@ public: classmeth_iterator classmeth_end() const { return ClassMethods.end(); } // Get the instance method definition for this implementation. - ObjCMethodDecl *getInstanceMethod(Selector Sel); + ObjCMethodDecl *getInstanceMethod(Selector Sel) const; // Get the class method definition for this implementation. - ObjCMethodDecl *getClassMethod(Selector Sel); + ObjCMethodDecl *getClassMethod(Selector Sel) const; typedef ObjCIvarDecl * const *ivar_iterator; ivar_iterator ivar_begin() const { return Ivars; } diff --git a/lib/AST/DeclObjC.cpp b/lib/AST/DeclObjC.cpp index 9da6dafb98..2e03802436 100644 --- a/lib/AST/DeclObjC.cpp +++ b/lib/AST/DeclObjC.cpp @@ -410,6 +410,12 @@ void ObjCInterfaceDecl::addPropertyMethods( ASTContext &Context, ObjCPropertyDecl *property, llvm::SmallVector &insMethods) { + // FIXME: The synthesized property we set here is misleading. We + // almost always synthesize these methods unless the user explicitly + // provided prototypes (which is odd, but allowed). Sema should be + // typechecking that the declarations jive in that situation (which + // it is not currently). + // Find the default getter and if one not found, add one. ObjCMethodDecl *GetterDecl = getInstanceMethod(property->getGetterName()); if (!GetterDecl) { @@ -626,20 +632,20 @@ ObjCMethodDecl *ObjCInterfaceDecl::lookupClassMethod(Selector Sel) { return NULL; } -/// lookupInstanceMethod - This method returns an instance method by looking in -/// the class implementation. Unlike interfaces, we don't look outside the -/// implementation. -ObjCMethodDecl *ObjCImplementationDecl::getInstanceMethod(Selector Sel) { +/// getInstanceMethod - This method returns an instance method by +/// looking in the class implementation. Unlike interfaces, we don't +/// look outside the implementation. +ObjCMethodDecl *ObjCImplementationDecl::getInstanceMethod(Selector Sel) const { for (instmeth_iterator I = instmeth_begin(), E = instmeth_end(); I != E; ++I) if ((*I)->getSelector() == Sel) return *I; return NULL; } -/// lookupClassMethod - This method returns a class method by looking in -/// the class implementation. Unlike interfaces, we don't look outside the -/// implementation. -ObjCMethodDecl *ObjCImplementationDecl::getClassMethod(Selector Sel) { +/// getClassMethod - This method returns a class method by looking in +/// the class implementation. Unlike interfaces, we don't look outside +/// the implementation. +ObjCMethodDecl *ObjCImplementationDecl::getClassMethod(Selector Sel) const { for (classmeth_iterator I = classmeth_begin(), E = classmeth_end(); I != E; ++I) if ((*I)->getSelector() == Sel) @@ -650,7 +656,7 @@ ObjCMethodDecl *ObjCImplementationDecl::getClassMethod(Selector Sel) { // lookupInstanceMethod - This method returns an instance method by looking in // the class implementation. Unlike interfaces, we don't look outside the // implementation. -ObjCMethodDecl *ObjCCategoryImplDecl::getInstanceMethod(Selector Sel) { +ObjCMethodDecl *ObjCCategoryImplDecl::getInstanceMethod(Selector Sel) const { for (instmeth_iterator I = instmeth_begin(), E = instmeth_end(); I != E; ++I) if ((*I)->getSelector() == Sel) return *I; @@ -660,7 +666,7 @@ ObjCMethodDecl *ObjCCategoryImplDecl::getInstanceMethod(Selector Sel) { // lookupClassMethod - This method returns an instance method by looking in // the class implementation. Unlike interfaces, we don't look outside the // implementation. -ObjCMethodDecl *ObjCCategoryImplDecl::getClassMethod(Selector Sel) { +ObjCMethodDecl *ObjCCategoryImplDecl::getClassMethod(Selector Sel) const { for (classmeth_iterator I = classmeth_begin(), E = classmeth_end(); I != E; ++I) if ((*I)->getSelector() == Sel)