summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-16 19:30:12 +0000
committerChris Lattner <sabre@nondot.org>2009-02-16 19:30:12 +0000
commit1460431e3737485f4ff491eea9ef4b86a0dbded4 (patch)
treec96103c2dd2354059de209e5160c88d434eff7bc /clang
parentf15f5d3e9fd9db78697c46f216786ac4bb9cdd5b (diff)
downloadbcm5719-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.h25
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; }
OpenPOWER on IntegriCloud