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 | |