objcmt-atomic-property.m.result revision 803ccc9071a7120b20490ba0f2ca2ed7d9e96c45
1// RUN: rm -rf %t 2// RUN: %clang_cc1 -fblocks -objcmt-migrate-readwrite-property -objcmt-migrate-readonly-property -objcmt-atomic-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 (atomic, weak) NSString *WeakProp; 26 27@property (atomic, retain) NSString *StrongProp; 28 29 30- (NSString *) UnavailProp __attribute__((unavailable)); 31- (void) setUnavailProp : (NSString *)Val; 32 33@property (atomic, retain) NSString *UnavailProp1 __attribute__((unavailable)); 34 35 36- (NSString *) UnavailProp2; 37- (void) setUnavailProp2 : (NSString *)Val __attribute__((unavailable)); 38 39@property (atomic, 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 (atomic, retain) NSArray *names2; 60@property (atomic, retain) NSArray *names3; 61@property (atomic, retain) NSArray *names4; 62@property (atomic, 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 (atomic, assign) id target; 69 70 71@property (atomic, assign) id dataSource; 72 73@property (atomic, assign) id xxxdelegateYYY; 74 75 76 77 78@property (atomic, retain) id MYtarget; 79 80 81@property (atomic, retain) id targetX; 82 83 84@property (atomic) int value; 85 86 87@property (atomic, getter=isContinuous) BOOL continuous; 88 89 90- (id) isAnObject; 91- (void)setAnObject : (id) object; 92 93@property (atomic, getter=isinValid, readonly) BOOL inValid; 94- (void) setInValid : (BOOL) arg; 95 96- (void) Nothing; 97@property (atomic, readonly) int Length; 98@property (atomic, readonly) id object; 99+ (double) D; 100@property (atomic, readonly) void *JSObject WEBKIT_OBJC_METHOD_ANNOTATION(AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER); 101@property (atomic, getter=isIgnoringInteractionEvents, readonly) BOOL ignoringInteractionEvents; 102 103@property (atomic, getter=getStringValue, retain) NSString *stringValue; 104@property (atomic, getter=getCounterValue, readonly) BOOL counterValue; 105 106@property (atomic, getter=getns_dixtionary, readonly) NSDictionary *ns_dixtionary; 107 108- (BOOL)is3bar; // watch out 109- (NSString *)get3foo; // watch out 110 111@property (atomic, getter=getM, readonly) BOOL m; 112@property (atomic, getter=getMA, readonly) BOOL MA; 113@property (atomic, getter=getALL, readonly) BOOL ALL; 114@property (atomic, getter=getMANY, readonly) BOOL MANY; 115@property (atomic, getter=getSome, readonly) BOOL some; 116@end 117 118 119@interface NSInvocation(CAT) 120@property (atomic, assign) id target; 121 122 123@property (atomic, assign) id dataSource; 124 125@property (atomic, assign) id xxxdelegateYYY; 126 127 128 129 130@property (atomic, retain) id MYtarget; 131 132 133@property (atomic, retain) id targetX; 134 135 136@property (atomic) int value; 137 138 139@property (atomic, getter=isContinuous) BOOL continuous; 140 141 142- (id) isAnObject; 143- (void)setAnObject : (id) object; 144 145@property (atomic, getter=isinValid, readonly) BOOL inValid; 146- (void) setInValid : (BOOL) arg; 147 148- (void) Nothing; 149@property (atomic, readonly) int Length; 150@property (atomic, readonly) id object; 151+ (double) D; 152 153- (BOOL)is3bar; // watch out 154- (NSString *)get3foo; // watch out 155 156@property (atomic, getter=getM, readonly) BOOL m; 157@property (atomic, getter=getMA, readonly) BOOL MA; 158@property (atomic, getter=getALL, readonly) BOOL ALL; 159@property (atomic, getter=getMANY, readonly) BOOL MANY; 160@property (atomic, 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 (atomic, 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 (atomic, 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 (atomic, 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 (atomic, 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 (atomic, readonly) id (^expressionBlock)(id, NSArray *, NSMutableDictionary *); 224@property (atomic, copy) id (^MyBlock)(id, NSArray *, NSMutableDictionary *); 225 226@property (atomic, readonly) id (*expressionFuncptr)(id, NSArray *, NSMutableDictionary *); 227@property (atomic) id (*MyFuncptr)(id, NSArray *, NSMutableDictionary *); 228 229@end 230