objcmt-property.m.result revision 2d9f38a47c86cd462ee8fa82210f27a8f9e0d2b7
1// RUN: rm -rf %t
2// RUN: %clang_cc1 -fblocks -objcmt-migrate-readwrite-property -objcmt-migrate-readonly-property -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#define WEBKIT_OBJC_METHOD_ANNOTATION(ANNOTATION) ANNOTATION
7#define WEAK_IMPORT_ATTRIBUTE __attribute__((objc_arc_weak_reference_unavailable))
8#define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
9#define DEPRECATED  __attribute__((deprecated)) 
10
11typedef char BOOL;
12@class NSString;
13@protocol NSCopying @end
14
15@interface NSObject <NSCopying>
16@end
17
18@interface NSDictionary : NSObject
19@end
20
21@interface I : NSObject {
22  int ivarVal;
23}
24
25@property (nonatomic, weak) NSString *WeakProp;
26
27@property (nonatomic, retain) NSString *StrongProp;
28
29
30- (NSString *) UnavailProp  __attribute__((unavailable));
31- (void) setUnavailProp  : (NSString *)Val;
32
33@property (nonatomic, retain) NSString *UnavailProp1  __attribute__((unavailable));
34
35
36- (NSString *) UnavailProp2;
37- (void) setUnavailProp2  : (NSString *)Val  __attribute__((unavailable));
38
39@property (nonatomic, copy) NSDictionary *undoAction;
40
41@end
42
43@implementation I
44@end
45
46@class NSArray;
47
48@interface MyClass2  {
49@private
50    NSArray *_names1;
51    NSArray *_names2;
52    NSArray *_names3;
53    NSArray *_names4;
54}
55
56
57
58
59@property (nonatomic, retain) NSArray *names2;
60@property (nonatomic, retain) NSArray *names3;
61@property (nonatomic, retain) NSArray *names4;
62@property (nonatomic, retain) NSArray *names1;
63@end
64
65// Properties that contain the name "delegate" or "dataSource",
66// or have exact name "target" have unsafe_unretained attribute.
67@interface NSInvocation 
68@property (nonatomic, unsafe_unretained) id target;
69
70
71@property (nonatomic, unsafe_unretained) id dataSource;
72
73@property (nonatomic, unsafe_unretained) id xxxdelegateYYY;
74
75
76
77
78@property (nonatomic, retain) id MYtarget;
79
80
81@property (nonatomic, retain) id targetX;
82
83 
84@property (nonatomic) int value;
85
86
87@property (nonatomic, getter=isContinuous) BOOL continuous;
88
89
90- (id) isAnObject;
91- (void)setAnObject : (id) object;
92
93@property (nonatomic, getter=isinValid, readonly) BOOL inValid;
94- (void) setInValid : (BOOL) arg;
95
96- (void) Nothing;
97@property (nonatomic, readonly) int Length;
98@property (nonatomic, readonly) id object;
99+ (double) D;
100@property (nonatomic, readonly) void *JSObject WEBKIT_OBJC_METHOD_ANNOTATION(AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER);
101@property (nonatomic, getter=isIgnoringInteractionEvents, readonly) BOOL ignoringInteractionEvents;
102
103@property (nonatomic, getter=getStringValue, retain) NSString *stringValue;
104@property (nonatomic, getter=getCounterValue, readonly) BOOL counterValue;
105
106@property (nonatomic, getter=getns_dixtionary, readonly) NSDictionary *ns_dixtionary;
107
108- (BOOL)is3bar; // watch out
109- (NSString *)get3foo; // watch out
110
111@property (nonatomic, getter=getM, readonly) BOOL m;
112@property (nonatomic, getter=getMA, readonly) BOOL MA;
113@property (nonatomic, getter=getALL, readonly) BOOL ALL;
114@property (nonatomic, getter=getMANY, readonly) BOOL MANY;
115@property (nonatomic, getter=getSome, readonly) BOOL some;
116@end
117
118
119@interface NSInvocation(CAT)
120@property (nonatomic, unsafe_unretained) id target;
121
122
123@property (nonatomic, unsafe_unretained) id dataSource;
124
125@property (nonatomic, unsafe_unretained) id xxxdelegateYYY;
126
127
128
129
130@property (nonatomic, retain) id MYtarget;
131
132
133@property (nonatomic, retain) id targetX;
134
135
136@property (nonatomic) int value;
137
138
139@property (nonatomic, getter=isContinuous) BOOL continuous;
140
141
142- (id) isAnObject;
143- (void)setAnObject : (id) object;
144
145@property (nonatomic, getter=isinValid, readonly) BOOL inValid;
146- (void) setInValid : (BOOL) arg;
147
148- (void) Nothing;
149@property (nonatomic, readonly) int Length;
150@property (nonatomic, readonly) id object;
151+ (double) D;
152
153- (BOOL)is3bar; // watch out
154- (NSString *)get3foo; // watch out
155
156@property (nonatomic, getter=getM, readonly) BOOL m;
157@property (nonatomic, getter=getMA, readonly) BOOL MA;
158@property (nonatomic, getter=getALL, readonly) BOOL ALL;
159@property (nonatomic, getter=getMANY, readonly) BOOL MANY;
160@property (nonatomic, getter=getSome, readonly) BOOL some;
161@end
162
163DEPRECATED
164@interface I_DEP
165- (BOOL) isinValid;
166- (void) setInValid : (BOOL) arg;
167@end
168
169@interface AnotherOne
170- (BOOL) isinValid DEPRECATED;
171- (void) setInValid : (BOOL) arg;
172- (id)MYtarget;
173- (void)setMYtarget: (id)target DEPRECATED;
174- (BOOL) getM DEPRECATED;
175
176- (id)xxxdelegateYYY DEPRECATED;
177- (void)setXxxdelegateYYY:(id)delegate DEPRECATED;
178@end
179
180// rdar://14987909
181#define NS_AVAILABLE __attribute__((availability(macosx,introduced=10.0)))
182#define NORETURN __attribute__((noreturn))
183#define ALIGNED __attribute__((aligned(16)))
184
185@interface NSURL
186// Do not infer a property.
187- (NSURL *)appStoreReceiptURL NS_AVAILABLE;
188- (void) setAppStoreReceiptURL : (NSURL *)object;
189
190@property (nonatomic, retain) NSURL *appStoreReceiptURLX NS_AVAILABLE;
191
192
193// Do not infer a property.
194- (NSURL *)appStoreReceiptURLY ;
195- (void) setAppStoreReceiptURLY : (NSURL *)object NS_AVAILABLE;
196
197@property (nonatomic, readonly) id OkToInfer NS_AVAILABLE;
198
199// Do not infer a property.
200- (NSURL *)appStoreReceiptURLZ ;
201- (void) setAppStoreReceiptURLZ : (NSURL *)object NS_AVAILABLE;
202
203// Do not infer a property.
204- (id) t1 NORETURN NS_AVAILABLE;
205- (void) setT1 : (id) arg NS_AVAILABLE;
206
207@property (nonatomic, retain) id method1 ALIGNED NS_AVAILABLE;
208
209
210- (NSURL *)init;  // No Change
211+ (id)alloc;      // No Change
212
213- (BOOL)is1stClass; // Not a valid property
214@property (nonatomic, getter=isClass, readonly) BOOL class;    // This is a valid property 'class' is not a keyword in ObjC
215- (BOOL)isDouble; // Not a valid property
216
217@end
218
219// rdar://15082818
220@class NSMutableDictionary;
221
222@interface NSArray
223@property (nonatomic, readonly) id (^expressionBlock)(id, NSArray *, NSMutableDictionary *);
224@property (nonatomic, copy) id (^MyBlock)(id, NSArray *, NSMutableDictionary *);
225
226@end
227