]> granicus.if.org Git - clang/commitdiff
arc migrator: replace "retain" attribute with "strong"
authorFariborz Jahanian <fjahanian@apple.com>
Fri, 20 Jan 2012 19:15:02 +0000 (19:15 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Fri, 20 Jan 2012 19:15:02 +0000 (19:15 +0000)
which have same semantics in mrr as well as arr.
// rdar://10688312

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148559 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ARCMigrate/TransProperties.cpp
test/ARCMT/GC-no-arc-runtime.m.result
test/ARCMT/GC.m.result
test/ARCMT/assign-prop-with-arc-runtime.m.result
test/ARCMT/releases-driver.m.result
test/ARCMT/releases.m.result
test/ARCMT/remove-dealloc-method.m.result
test/ARCMT/remove-dealloc-zerouts.m.result
test/ARCMT/retains.m.result

index f8bc8a3c5feb22cd04cc020664724dd323d219ea..b36acbb205d148a4aa220f33d43a7d4874cad212 100644 (file)
@@ -50,7 +50,7 @@ class PropertiesRewriter {
   
   enum PropActionKind {
     PropAction_None,
-    PropAction_RetainRemoved,
+    PropAction_RetainReplacedWithStrong,
     PropAction_AssignRemoved,
     PropAction_AssignRewritten,
     PropAction_MaybeAddWeakOrUnsafe
@@ -161,9 +161,11 @@ private:
     switch (kind) {
     case PropAction_None:
       return;
-    case PropAction_RetainRemoved:
-      removeAttribute("retain", atLoc);
+    case PropAction_RetainReplacedWithStrong: {
+      StringRef toAttr = "strong";
+      MigrateCtx.rewritePropertyAttribute("retain", toAttr, atLoc);
       return;
+    }
     case PropAction_AssignRemoved:
       return removeAssignForDefaultStrong(props, atLoc);
     case PropAction_AssignRewritten:
@@ -193,7 +195,7 @@ private:
 
     if (propAttrs & ObjCPropertyDecl::OBJC_PR_retain) {
       // strong is the default.
-      return doPropAction(PropAction_RetainRemoved, props, atLoc);
+      return doPropAction(PropAction_RetainReplacedWithStrong, props, atLoc);
     }
 
     bool HasIvarAssignedAPlusOneObject = hasIvarAssignedAPlusOneObject(props);
index 8493b0de7b9379d322f342ea8d6b4f7a852b6093..983af62c4a6422f1529e4b360ed1fefcdb950134 100644 (file)
@@ -26,7 +26,7 @@ void test1(CFTypeRef *cft) {
 @end
 
 @interface I2
-@property  id prop;
+@property (strong) id prop;
 @end
 
 @implementation I2
index 0df6aa89e8a6a1f1d91a7201e003172e1feb4d60..2cf6b8e24481cf56c2c2451c6e29698f4253224f 100644 (file)
@@ -26,7 +26,7 @@ void test1(CFTypeRef *cft) {
 @end
 
 @interface I2
-@property  id prop;
+@property (strong) id prop;
 @end
 
 @implementation I2
index 9551e305a1e846be80c220a570adc7a3413746ca..30a9caa84475292ec02f6ebde8c0d7a837abead2 100644 (file)
@@ -38,9 +38,9 @@ typedef _NSCachedAttributedString *BadClassForWeak;
 @property (weak) Foo *no_user_ivar1;
 @property (weak, readonly) Foo *no_user_ivar2;
 
-@property  id def1;
-@property (atomic) id def2;
-@property (atomic) id def3;
+@property (strong) id def1;
+@property (atomic,strong) id def2;
+@property (strong,atomic) id def3;
 
 @end
 
@@ -58,12 +58,12 @@ typedef _NSCachedAttributedString *BadClassForWeak;
 @end
 
 @interface TestExt
-@property (readonly) TestExt *x1;
+@property (strong,readonly) TestExt *x1;
 @property (weak, readonly) TestExt *x2;
 @end
 
 @interface TestExt()
-@property (readwrite) TestExt *x1;
+@property (strong,readwrite) TestExt *x1;
 @property (weak, readwrite) TestExt *x2;
 @end
 
index 14aecce8e9e1f29590014bf76fac41f79b8d72ce..70c0aecaf4755510fc40e4d5b65fa21b80b34e7f 100644 (file)
@@ -20,7 +20,7 @@ id IhaveSideEffect();
 @interface Foo : NSObject {
   id bar;
 }
-@property  id bar;
+@property (strong) id bar;
 -(void)test:(id)obj;
 @end
 
index 2b6240b10e2ec9f70904f7f6bcb52007e22a7e3f..556610ab2a53484ece314125c2d4be5b7bd33430 100644 (file)
@@ -20,7 +20,7 @@ id IhaveSideEffect();
 @interface Foo : NSObject {
   id bar;
 }
-@property  id bar;
+@property (strong) id bar;
 -(void)test:(id)obj;
 @end
 
index 5e1efa868774c02ddb56d24d92f9239303a2d7dd..47e31f9d249aed7ce2c70910bbaa8e66f5e660f0 100644 (file)
@@ -5,10 +5,10 @@
 #define nil ((void*) 0)
 
 @interface Foo 
-@property  id x;
-@property  id y;
-@property  id w;
-@property  id z;
+@property (strong) id x;
+@property (strong) id y;
+@property (strong) id w;
+@property (strong) id z;
 @end
 
 @implementation Foo 
index c857760bc395c954c9883b688d45146b9889a1ce..9ae831abacf25c28007e4421243e30d9b5e22812 100644 (file)
@@ -3,10 +3,10 @@
 // RUN: diff %t %s.result
 
 @interface Foo 
-@property  id x;
-@property  id y;
-@property  id w;
-@property  id z;
+@property (strong) id x;
+@property (strong) id y;
+@property (strong) id w;
+@property (strong) id z;
 @property (strong) id q;
 @end
 
@@ -23,7 +23,7 @@
 @end
 
 @interface Bar
-@property  Foo *a;
+@property (strong) Foo *a;
 - (void) setA:(Foo*) val;
 - (id) a;
 @end
index 19f8972942aaeb41b8a0020604036520669caeb5..2011e506360c575526e12016d793704d4f363f41 100644 (file)
@@ -9,7 +9,7 @@ id IhaveSideEffect();
 @interface Foo : NSObject {
   id bar;
 }
-@property  id bar;
+@property (strong) id bar;
 -(id)test:(id)obj;
 -(id)something;
 @end