[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang / test / ARCMT / objcmt-property-dot-syntax.m
blob00426dcbdc33f84a6a61fb279a6c135dd3750dc6
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
6 @class NSString;
8 // rdar://19140267
9 @protocol NSObject
10 @property (readonly, copy) NSString *description;
11 @end
13 // rdar://18498572
14 @interface NSObject <NSObject> @end
16 @interface P : NSObject
18   P* obj;
19   int i1, i2, i3;
21 @property int count;
22 @property (copy) P* PropertyReturnsPObj;
23 - (P*) MethodReturnsPObj;
24 @end
26 P* fun(void);
28 @implementation P
29 - (int) Meth : (P*)array {
30   [obj setCount : 100];
32   [(P*)0 setCount : [array count]];
34   [[obj PropertyReturnsPObj] setCount : [array count]];
36   [obj setCount : (i1+i2*i3 - 100)];
38   return [obj count] -
39          [(P*)0 count] + [array count] +
40          [fun() count] - 
41          [[obj PropertyReturnsPObj] count] +
42          [self->obj count];
45 - (P*) MethodReturnsPObj { return 0; }
47 - (NSString *)description { return [super description]; }
48 @end
50 // rdar://19140267
51 @interface Sub : P
52 @end
54 @implementation Sub
55 - (int) Meth : (P*)array {
56   [super setCount : 100];
58   [super setCount : [array count]];
60   [[super PropertyReturnsPObj] setCount : [array count]];
62   [super setCount : (i1+i2*i3 - 100)];
64   return [super count] -
65          [(P*)0 count] + [array count] +
66          [fun() count] -
67          [[super PropertyReturnsPObj] count] +
68          [self->obj count];
70 @end
73 @interface Rdar19038838
74 @property id newItem; // should be marked objc_method_family(none), but isn't.
75 @end
77 id testRdar19038838(Rdar19038838 *obj) {
78   return [obj newItem];
81 // rdar://19381786
82 @interface rdar19381786 : NSObject
84   rdar19381786* obj;
86 @property int count;
87 @end
89 @protocol PR 
90 @property int count;
91 @end
93 @implementation rdar19381786
94 -(void)test:(id)some : (id<PR>)qsome : (SEL)selsome
96   [obj setCount : 100];
97   [some setCount : [some count]];
98   [qsome setCount : [qsome count]];
100 @end
102 // rdar://19140114
103 int NSOnState;
104 int ArrNSOnState[4];
105 @interface rdar19140114 : NSObject
107   rdar19140114* menuItem;
109 @property int state;
110 @end
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];
122 @end