summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/IdentifierTable.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-07-23 19:31:17 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-07-23 19:31:17 +0000
commit4f3a64fd6e9dff09da70c4185243905dbfe9910c (patch)
tree0833e69f1cdb1ae8201024b5475c7d890560757f /clang/lib/Basic/IdentifierTable.cpp
parentb7243381c2b7a7214af5e1f8d557f2d9b85642bf (diff)
downloadbcm5719-llvm-4f3a64fd6e9dff09da70c4185243905dbfe9910c.tar.gz
bcm5719-llvm-4f3a64fd6e9dff09da70c4185243905dbfe9910c.zip
ObjC migrator: Define family of methods
which are candidate for migrating to 'instancetype'. wip. llvm-svn: 186981
Diffstat (limited to 'clang/lib/Basic/IdentifierTable.cpp')
-rw-r--r--clang/lib/Basic/IdentifierTable.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp
index b8ba4ba4d51..faff4d88635 100644
--- a/clang/lib/Basic/IdentifierTable.cpp
+++ b/clang/lib/Basic/IdentifierTable.cpp
@@ -452,6 +452,39 @@ ObjCMethodFamily Selector::getMethodFamilyImpl(Selector sel) {
return OMF_None;
}
+ObjCInstanceTypeFamily Selector::getInstTypeMethodFamilyImpl(Selector sel) {
+ IdentifierInfo *first = sel.getIdentifierInfoForSlot(0);
+ if (!first) return OIT_None;
+
+ StringRef name = first->getName();
+
+ if (name.empty()) return OIT_None;
+ switch (name.front()) {
+ case 'a':
+ if (startsWithWord(name, "alloc")) return OIT_MemManage;
+ else
+ if (startsWithWord(name, "array")) return OIT_Array;
+ break;
+ case 'd':
+ if (startsWithWord(name, "dictionary")) return OIT_Dictionary;
+ break;
+ case 'i':
+ if (startsWithWord(name, "init")) return OIT_MemManage;
+ break;
+ case 's':
+ if (startsWithWord(name, "string")) return OIT_NSString;
+ else
+ if (startsWithWord(name, "set")) return OIT_NSSet;
+ break;
+ case 'U':
+ if (startsWithWord(name, "URL")) return OIT_NSURL;
+ break;
+ default:
+ break;
+ }
+ return OIT_None;
+}
+
namespace {
struct SelectorTableImpl {
llvm::FoldingSet<MultiKeywordSelector> Table;
OpenPOWER on IntegriCloud