diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-02-16 19:30:12 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-02-16 19:30:12 +0000 |
| commit | 1460431e3737485f4ff491eea9ef4b86a0dbded4 (patch) | |
| tree | c96103c2dd2354059de209e5160c88d434eff7bc /clang | |
| parent | f15f5d3e9fd9db78697c46f216786ac4bb9cdd5b (diff) | |
| download | bcm5719-llvm-1460431e3737485f4ff491eea9ef4b86a0dbded4.tar.gz bcm5719-llvm-1460431e3737485f4ff491eea9ef4b86a0dbded4.zip | |
cleanup, add a getMethod() that takes a bool to indicate whether
the caller wants class or instance methods.
llvm-svn: 64654
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/include/clang/AST/DeclObjC.h | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/clang/include/clang/AST/DeclObjC.h b/clang/include/clang/AST/DeclObjC.h index e2974341700..45deed69dce 100644 --- a/clang/include/clang/AST/DeclObjC.h +++ b/clang/include/clang/AST/DeclObjC.h @@ -302,6 +302,9 @@ public: // Get the local instance/class method declared in this interface. ObjCMethodDecl *getInstanceMethod(Selector Sel) const; ObjCMethodDecl *getClassMethod(Selector Sel) const; + ObjCMethodDecl *getMethod(Selector Sel, bool isInstance) const { + return isInstance ? getInstanceMethod(Sel) : getClassMethod(Sel); + } ObjCPropertyDecl *FindPropertyDeclaration(IdentifierInfo *PropertyId) const; @@ -854,11 +857,13 @@ public: void addClassMethod(ObjCMethodDecl *method) { ClassMethods.push_back(method); } - // Get the instance method definition for this implementation. + + // Get the local instance/class method declared in this interface. ObjCMethodDecl *getInstanceMethod(Selector Sel) const; - - // Get the class method definition for this implementation. ObjCMethodDecl *getClassMethod(Selector Sel) const; + ObjCMethodDecl *getMethod(Selector Sel, bool isInstance) const { + return isInstance ? getInstanceMethod(Sel) : getClassMethod(Sel); + } void addPropertyImplementation(ObjCPropertyImplDecl *property) { PropertyImplementations.push_back(property); @@ -917,11 +922,8 @@ public: /// /// Typically, instance variables are specified in the class interface, /// *not* in the implementation. Nevertheless (for legacy reasons), we -/// allow instance variables to be specified in the implementation. When -/// specified, they need to be *identical* to the interface. Now that we -/// have support for non-fragile ivars in ObjC 2.0, we can consider removing -/// the legacy semantics and allow developers to move private ivar declarations -/// from the class interface to the class implementation (but I digress:-) +/// allow instance variables to be specified in the implementation. When +/// specified, they need to be *identical* to the interface. /// class ObjCImplementationDecl : public Decl, public DeclContext { /// Class interface for this implementation @@ -1031,11 +1033,12 @@ public: classmeth_iterator classmeth_begin() const { return ClassMethods.begin(); } classmeth_iterator classmeth_end() const { return ClassMethods.end(); } - // Get the instance method definition for this implementation. + // Get the local instance/class method declared in this interface. ObjCMethodDecl *getInstanceMethod(Selector Sel) const; - - // Get the class method definition for this implementation. ObjCMethodDecl *getClassMethod(Selector Sel) const; + ObjCMethodDecl *getMethod(Selector Sel, bool isInstance) const { + return isInstance ? getInstanceMethod(Sel) : getClassMethod(Sel); + } typedef ObjCIvarDecl * const *ivar_iterator; ivar_iterator ivar_begin() const { return Ivars; } |

