1// RUN: rm -rf %t 2// RUN: %clang_cc1 -objcmt-migrate-property -mt-migrate-directory %t %s -x objective-c -fobjc-runtime-has-weak -fobjc-arc -fobjc-default-synthesize-properties -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 -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c -fobjc-runtime-has-weak -fobjc-arc -fobjc-default-synthesize-properties %s.result 5 6@class NSString; 7@protocol NSCopying @end 8 9@interface NSObject <NSCopying> 10@end 11 12@interface NSDictionary : NSObject 13@end 14 15@interface I : NSObject { 16 int ivarVal; 17} 18- (void) setWeakProp : (NSString *__weak)Val; 19- (NSString *__weak) WeakProp; 20 21- (NSString *) StrongProp; 22- (void) setStrongProp : (NSString *)Val; 23 24- (NSString *) UnavailProp __attribute__((unavailable)); 25- (void) setUnavailProp : (NSString *)Val; 26 27- (NSString *) UnavailProp1 __attribute__((unavailable)); 28- (void) setUnavailProp1 : (NSString *)Val __attribute__((unavailable)); 29 30- (NSString *) UnavailProp2; 31- (void) setUnavailProp2 : (NSString *)Val __attribute__((unavailable)); 32 33- (NSDictionary*) undoAction; 34- (void) setUndoAction: (NSDictionary*)Arg; 35@end 36 37@implementation I 38@end 39 40@class NSArray; 41 42@interface MyClass2 { 43@private 44 NSArray *_names1; 45 NSArray *_names2; 46 NSArray *_names3; 47 NSArray *_names4; 48} 49- (void)setNames1:(NSArray *)names; 50- (void)setNames4:(__strong NSArray *)names; 51- (void)setNames3:(__strong NSArray *)names; 52- (void)setNames2:(NSArray *)names; 53- (NSArray *) names2; 54- (NSArray *)names3; 55- (__strong NSArray *)names4; 56- (NSArray *) names1; 57@end 58 59// Properties that contain the name "delegate" or "dataSource", 60// or have exact name "target" have unsafe_unretained attribute. 61@interface NSInvocation 62- (id)target; 63- (void)setTarget:(id)target; 64 65- (id) dataSource; 66 67- (id)xxxdelegateYYY; 68- (void)setXxxdelegateYYY:(id)delegate; 69 70- (void)setDataSource:(id)source; 71 72- (id)MYtarget; 73- (void)setMYtarget: (id)target; 74 75- (id)targetX; 76- (void)setTargetX: (id)t; 77 78- (int)value; 79- (void)setValue: (int)val; 80@end 81