Home | History | Annotate | Download | only in ARCMT
      1 // RUN: rm -rf %t
      2 // RUN: %clang_cc1 -objcmt-migrate-property-dot-syntax -mt-migrate-directory %t %s -x objective-c -fobjc-runtime-has-weak -fobjc-arc -triple x86_64-apple-darwin11
      3 // RUN: c-arcmt-test -mt-migrate-directory %t | arcmt-test -verify-transformed-files %s.result
      4 // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c -fobjc-runtime-has-weak -fobjc-arc %s.result
      5 
      6 @class NSString;
      7 
      8 // rdar://19140267
      9 @protocol NSObject
     10 @property (readonly, copy) NSString *description;
     11 @end
     12 
     13 // rdar://18498572
     14 @interface NSObject <NSObject> @end
     15 
     16 @interface P : NSObject
     17 {
     18   P* obj;
     19   int i1, i2, i3;
     20 }
     21 @property int count;
     22 @property (copy) P* PropertyReturnsPObj;
     23 - (P*) MethodReturnsPObj;
     24 @end
     25 
     26 P* fun();
     27 
     28 @implementation P
     29 - (int) Meth : (P*)array {
     30   [obj setCount : 100];
     31 
     32   [(P*)0 setCount : [array count]];
     33 
     34   [[obj PropertyReturnsPObj] setCount : [array count]];
     35 
     36   [obj setCount : (i1+i2*i3 - 100)];
     37 
     38   return [obj count] -
     39          [(P*)0 count] + [array count] +
     40          [fun() count] - 
     41          [[obj PropertyReturnsPObj] count] +
     42          [self->obj count];
     43 }
     44 
     45 - (P*) MethodReturnsPObj { return 0; }
     46 
     47 - (NSString *)description { return [super description]; }
     48 @end
     49 
     50 // rdar://19140267
     51 @interface Sub : P
     52 @end
     53 
     54 @implementation Sub
     55 - (int) Meth : (P*)array {
     56   [super setCount : 100];
     57 
     58   [super setCount : [array count]];
     59 
     60   [[super PropertyReturnsPObj] setCount : [array count]];
     61 
     62   [super setCount : (i1+i2*i3 - 100)];
     63 
     64   return [super count] -
     65          [(P*)0 count] + [array count] +
     66          [fun() count] -
     67          [[super PropertyReturnsPObj] count] +
     68          [self->obj count];
     69 }
     70 @end
     71 
     72 
     73 @interface Rdar19038838
     74 @property id newItem; // should be marked objc_method_family(none), but isn't.
     75 @end
     76 
     77 id testRdar19038838(Rdar19038838 *obj) {
     78   return [obj newItem];
     79 }
     80 
     81 // rdar://19381786
     82 @interface rdar19381786 : NSObject
     83 {
     84   rdar19381786* obj;
     85 }
     86 @property int count;
     87 @end
     88 
     89 @protocol PR 
     90 @property int count;
     91 @end
     92 
     93 @implementation rdar19381786
     94 -(void)test:(id)some : (id<PR>)qsome : (SEL)selsome
     95 {
     96   [obj setCount : 100];
     97   [some setCount : [some count]];
     98   [qsome setCount : [qsome count]];
     99 }
    100 @end
    101 
    102 // rdar://19140114
    103 int NSOnState;
    104 int ArrNSOnState[4];
    105 @interface rdar19140114 : NSObject
    106 {
    107   rdar19140114* menuItem;
    108 }
    109 @property int state;
    110 @end
    111 
    112 @implementation rdar19140114
    113 - (void) Meth {
    114   [menuItem setState:NSOnState];
    115   [menuItem setState :NSOnState];
    116   [menuItem setState     :ArrNSOnState[NSOnState]];
    117   [menuItem setState : NSOnState];
    118   [menuItem setState:    NSOnState];
    119   [menuItem setState: NSOnState];
    120   [menuItem setState     :    NSOnState];
    121 }
    122 @end
    123