blob: f1b92555507950391ed13da245c5e0b9ff64ed72 [file] [log] [blame]
Stephen Hines176edba2014-12-01 14:53:08 -08001// 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// rdar://18498572
7@interface NSObject @end
8
9@interface P : NSObject
10{
11 P* obj;
12 int i1, i2, i3;
13}
14@property int count;
15@property (copy) P* PropertyReturnsPObj;
16- (P*) MethodReturnsPObj;
17@end
18
19P* fun();
20
21@implementation P
22- (int) Meth : (P*)array {
23 [obj setCount : 100];
24
25 [(P*)0 setCount : [array count]];
26
27 [[obj PropertyReturnsPObj] setCount : [array count]];
28
29 [obj setCount : (i1+i2*i3 - 100)];
30
31 return [obj count] -
32 [(P*)0 count] + [array count] +
33 [fun() count] -
34 [[obj PropertyReturnsPObj] count] +
35 [self->obj count];
36}
37
38- (P*) MethodReturnsPObj { return 0; }
39@end
Stephen Hines0e2c34f2015-03-23 12:09:02 -070040
41// rdar://19140267
42@interface Sub : P
43@end
44
45@implementation Sub
46- (int) Meth : (P*)array {
47 [super setCount : 100];
48
49 [super setCount : [array count]];
50
51 [[super PropertyReturnsPObj] setCount : [array count]];
52
53 [super setCount : (i1+i2*i3 - 100)];
54
55 return [super count] -
56 [(P*)0 count] + [array count] +
57 [fun() count] -
58 [[super PropertyReturnsPObj] count] +
59 [self->obj count];
60}
61@end
62
63
64@interface Rdar19038838
65@property id newItem; // should be marked objc_method_family(none), but isn't.
66@end
67
68id testRdar19038838(Rdar19038838 *obj) {
69 return [obj newItem];
70}
71
72// rdar://19381786
73@interface rdar19381786 : NSObject
74{
75 rdar19381786* obj;
76}
77@property int count;
78@end
79
80@protocol PR
81@property int count;
82@end
83
84@implementation rdar19381786
85-(void)test:(id)some : (id<PR>)qsome : (SEL)selsome
86{
87 [obj setCount : 100];
88 [some setCount : [some count]];
89 [qsome setCount : [qsome count]];
90}
91@end
92
93// rdar://19140114
94int NSOnState;
95int ArrNSOnState[4];
96@interface rdar19140114 : NSObject
97{
98 rdar19140114* menuItem;
99}
100@property int state;
101@end
102
103@implementation rdar19140114
104- (void) Meth {
105 [menuItem setState:NSOnState];
106 [menuItem setState :NSOnState];
107 [menuItem setState :ArrNSOnState[NSOnState]];
108 [menuItem setState : NSOnState];
109 [menuItem setState: NSOnState];
110 [menuItem setState: NSOnState];
111 [menuItem setState : NSOnState];
112}
113@end