1 // RUN: rm -rf %t 2 // RUN: %clang_cc1 -fobjc-arc -objcmt-migrate-literals -objcmt-migrate-subscripting -mt-migrate-directory %t %s -x objective-c -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 -fobjc-arc -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s.result 5 6 typedef signed char BOOL; 7 #define nil ((void*) 0) 8 9 typedef const struct __CFString * CFStringRef; 10 11 @interface NSObject 12 + (id)alloc; 13 @end 14 15 @protocol NSCopying 16 @end 17 18 @interface NSString : NSObject 19 + (id)stringWithString:(NSString *)string; 20 - (id)initWithString:(NSString *)aString; 21 @end 22 23 @interface NSArray : NSObject 24 - (id)objectAtIndex:(unsigned long)index; 25 @end 26 27 @interface NSArray (NSExtendedArray) 28 - (id)objectAtIndexedSubscript:(unsigned)idx; 29 @end 30 31 @interface NSArray (NSArrayCreation) 32 + (id)array; 33 + (id)arrayWithObject:(id)anObject; 34 + (id)arrayWithObjects:(const id [])objects count:(unsigned long)cnt; 35 + (id)arrayWithObjects:(id)firstObj, ...; 36 + (id)arrayWithArray:(NSArray *)array; 37 38 - (id)initWithObjects:(const id [])objects count:(unsigned long)cnt; 39 - (id)initWithObjects:(id)firstObj, ...; 40 - (id)initWithArray:(NSArray *)array; 41 @end 42 43 @interface NSMutableArray : NSArray 44 - (void)replaceObjectAtIndex:(unsigned long)index withObject:(id)anObject; 45 @end 46 47 @interface NSMutableArray (NSExtendedMutableArray) 48 - (void)setObject:(id)obj atIndexedSubscript:(unsigned)idx; 49 @end 50 51 @interface NSDictionary : NSObject 52 - (id)objectForKey:(id)aKey; 53 @end 54 55 @interface NSDictionary (NSExtendedDictionary) 56 - (id)objectForKeyedSubscript:(id)key; 57 @end 58 59 @interface NSDictionary (NSDictionaryCreation) 60 + (id)dictionary; 61 + (id)dictionaryWithObject:(id)object forKey:(id)key; 62 + (id)dictionaryWithObjects:(const id [])objects forKeys:(const id [])keys count:(unsigned long)cnt; 63 + (id)dictionaryWithObjectsAndKeys:(id)firstObject, ...; 64 + (id)dictionaryWithDictionary:(NSDictionary *)dict; 65 + (id)dictionaryWithObjects:(NSArray *)objects forKeys:(NSArray *)keys; 66 67 - (id)initWithObjects:(const id [])objects forKeys:(const id [])keys count:(unsigned long)cnt; 68 - (id)initWithObjectsAndKeys:(id)firstObject, ...; 69 - (id)initWithDictionary:(NSDictionary *)otherDictionary; 70 - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys; 71 @end 72 73 @interface NSMutableDictionary : NSDictionary 74 - (void)setObject:(id)anObject forKey:(id)aKey; 75 @end 76 77 @interface NSMutableDictionary (NSExtendedMutableDictionary) 78 - (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key; 79 @end 80 81 @interface NSNumber : NSObject 82 @end 83 84 @interface NSNumber (NSNumberCreation) 85 + (NSNumber *)numberWithInt:(int)value; 86 - (id)initWithInt:(int)value; 87 @end 88 89 @interface I { 90 NSArray *ivarArr; 91 } 92 @end 93 @implementation I 94 -(void) foo { 95 NSString *str; 96 NSArray *arr; 97 NSDictionary *dict; 98 99 arr = [NSArray arrayWithObjects:str, str, nil]; 100 arr = [[NSArray alloc] initWithObjects:str, str, nil]; 101 dict = [NSDictionary dictionaryWithObjectsAndKeys: @"value1", @"key1", @"value2", @"key2", nil]; 102 dict = [[NSDictionary alloc] initWithObjectsAndKeys: @"value1", @"key1", @"value2", @"key2", nil]; 103 104 dict = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] initWithObjects:@"1", @"2", nil] forKeys:[NSArray arrayWithObjects:@"A", @"B", nil]]; 105 106 NSNumber *n = [[NSNumber alloc] initWithInt:2]; 107 } 108 @end 109