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 6typedef signed char BOOL; 7#define nil ((void*) 0) 8 9typedef 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