summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-09-25 00:17:07 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-09-25 00:17:07 +0000
commit7391a7b5aaa9590a6f468aca6b377773dbf3a6e0 (patch)
tree824db53e58f1b2936fed853ff318d189f1621c17
parent18d37b539e3e898765ae2099e02b8367b5fb4771 (diff)
downloadbcm5719-llvm-7391a7b5aaa9590a6f468aca6b377773dbf3a6e0.tar.gz
bcm5719-llvm-7391a7b5aaa9590a6f468aca6b377773dbf3a6e0.zip
ObjectiveC migrator. Don't suggest @property for
methods which look like getters but belong to known family of methods. // rdar://15044058 llvm-svn: 191347
-rw-r--r--clang/lib/ARCMigrate/ObjCMT.cpp6
-rw-r--r--clang/test/ARCMT/objcmt-property.m3
-rw-r--r--clang/test/ARCMT/objcmt-property.m.result3
3 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp b/clang/lib/ARCMigrate/ObjCMT.cpp
index a82ac97e00a..a9fc171512d 100644
--- a/clang/lib/ARCMigrate/ObjCMT.cpp
+++ b/clang/lib/ARCMigrate/ObjCMT.cpp
@@ -772,6 +772,12 @@ bool ObjCMigrateASTConsumer::migrateProperty(ASTContext &Ctx,
return false;
Selector GetterSelector = Method->getSelector();
+ ObjCInstanceTypeFamily OIT_Family =
+ Selector::getInstTypeMethodFamily(GetterSelector);
+
+ if (OIT_Family != OIT_None)
+ return false;
+
IdentifierInfo *getterName = GetterSelector.getIdentifierInfoForSlot(0);
Selector SetterSelector =
SelectorTable::constructSetterSelector(PP.getIdentifierTable(),
diff --git a/clang/test/ARCMT/objcmt-property.m b/clang/test/ARCMT/objcmt-property.m
index 03aaaa0619e..f27299f148a 100644
--- a/clang/test/ARCMT/objcmt-property.m
+++ b/clang/test/ARCMT/objcmt-property.m
@@ -207,4 +207,7 @@ DEPRECATED
- (id)method1 ALIGNED NS_AVAILABLE;
- (void) setMethod1 : (id) object NS_AVAILABLE ALIGNED;
+- (NSURL *)init; // No Change
++ (id)alloc; // No Change
+
@end
diff --git a/clang/test/ARCMT/objcmt-property.m.result b/clang/test/ARCMT/objcmt-property.m.result
index ace9c67e486..902dcb39c05 100644
--- a/clang/test/ARCMT/objcmt-property.m.result
+++ b/clang/test/ARCMT/objcmt-property.m.result
@@ -207,4 +207,7 @@ DEPRECATED
@property (nonatomic, retain) id method1 ALIGNED NS_AVAILABLE;
+- (NSURL *)init; // No Change
++ (id)alloc; // No Change
+
@end
OpenPOWER on IntegriCloud