diff options
author | Jordy Rose <jediknil@belkadan.com> | 2012-03-17 20:51:32 +0000 |
---|---|---|
committer | Jordy Rose <jediknil@belkadan.com> | 2012-03-17 20:51:32 +0000 |
commit | 44b8e4652d8e20c1e6611b35803e47b4a013b6c2 (patch) | |
tree | 0146cb8b4f64daf083c6bdb38a2822f76b02c742 | |
parent | e921b1a8b6b6f47abbc9b3de47cc74a34db2852b (diff) |
Kill cocoa::deriveNamingConvention and cocoa::followsFundamentalRule. They are now just simple wrappers around method families, and method decls can cache method family lookups. Also, no one is using them right now.
The one difference between ObjCMethodDecl::getMethodFamily and Selector::getMethodFamily is that the former will do some additional sanity checking, and since CoreFoundation types don't look like Objective-C objects, an otherwise interesting method will get a method family of OMF_None. Future clients that use method families should consider how they want to handle CF types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153000 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Analysis/DomainSpecific/CocoaConventions.h | 12 | ||||
-rw-r--r-- | lib/ARCMigrate/Transforms.cpp | 1 | ||||
-rw-r--r-- | lib/Analysis/CocoaConventions.cpp | 40 |
3 files changed, 1 insertions, 52 deletions
diff --git a/include/clang/Analysis/DomainSpecific/CocoaConventions.h b/include/clang/Analysis/DomainSpecific/CocoaConventions.h index fa8afccfcd..e6a2f13a0b 100644 --- a/include/clang/Analysis/DomainSpecific/CocoaConventions.h +++ b/include/clang/Analysis/DomainSpecific/CocoaConventions.h @@ -14,25 +14,15 @@ #ifndef LLVM_CLANG_ANALYSIS_DS_COCOA #define LLVM_CLANG_ANALYSIS_DS_COCOA -#include "clang/Basic/IdentifierTable.h" +#include "clang/Basic/LLVM.h" #include "llvm/ADT/StringRef.h" namespace clang { class FunctionDecl; -class ObjCMethodDecl; class QualType; namespace ento { namespace cocoa { - - enum NamingConvention { NoConvention, CreateRule, InitRule }; - - NamingConvention deriveNamingConvention(Selector S, const ObjCMethodDecl *MD); - - static inline bool followsFundamentalRule(Selector S, - const ObjCMethodDecl *MD) { - return deriveNamingConvention(S, MD) == CreateRule; - } bool isRefType(QualType RetTy, StringRef Prefix, StringRef Name = StringRef()); diff --git a/lib/ARCMigrate/Transforms.cpp b/lib/ARCMigrate/Transforms.cpp index 70ef6216d6..d342d1aa04 100644 --- a/lib/ARCMigrate/Transforms.cpp +++ b/lib/ARCMigrate/Transforms.cpp @@ -12,7 +12,6 @@ #include "clang/Sema/SemaDiagnostic.h" #include "clang/AST/RecursiveASTVisitor.h" #include "clang/AST/StmtVisitor.h" -#include "clang/Analysis/DomainSpecific/CocoaConventions.h" #include "clang/Lex/Lexer.h" #include "clang/Basic/SourceManager.h" #include "llvm/ADT/StringSwitch.h" diff --git a/lib/Analysis/CocoaConventions.cpp b/lib/Analysis/CocoaConventions.cpp index ee8a6efb35..7e9e38fd1e 100644 --- a/lib/Analysis/CocoaConventions.cpp +++ b/lib/Analysis/CocoaConventions.cpp @@ -20,46 +20,6 @@ using namespace clang; using namespace ento; -// The "fundamental rule" for naming conventions of methods: -// (url broken into two lines) -// http://developer.apple.com/documentation/Cocoa/Conceptual/ -// MemoryMgmt/Tasks/MemoryManagementRules.html -// -// "You take ownership of an object if you create it using a method whose name -// begins with "alloc" or "new" or contains "copy" (for example, alloc, -// newObject, or mutableCopy), or if you send it a retain message. You are -// responsible for relinquishing ownership of objects you own using release -// or autorelease. Any other time you receive an object, you must -// not release it." -// - -cocoa::NamingConvention cocoa::deriveNamingConvention(Selector S, - const ObjCMethodDecl *MD) { - switch (MD && MD->hasAttr<ObjCMethodFamilyAttr>()? MD->getMethodFamily() - : S.getMethodFamily()) { - case OMF_None: - case OMF_autorelease: - case OMF_dealloc: - case OMF_finalize: - case OMF_release: - case OMF_retain: - case OMF_retainCount: - case OMF_self: - case OMF_performSelector: - return NoConvention; - - case OMF_init: - return InitRule; - - case OMF_alloc: - case OMF_copy: - case OMF_mutableCopy: - case OMF_new: - return CreateRule; - } - llvm_unreachable("unexpected naming convention"); -} - bool cocoa::isRefType(QualType RetTy, StringRef Prefix, StringRef Name) { // Recursively walk the typedef stack, allowing typedefs of reference types. |