1 // RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin %s -o /dev/null 2 3 typedef unsigned int size_t; 4 @protocol P @end 5 6 @interface NSMutableArray 7 #if __has_feature(objc_subscripting) 8 - (id)objectAtIndexedSubscript:(size_t)index; 9 - (void)setObject:(id)object atIndexedSubscript:(size_t)index; 10 #endif 11 @end 12 13 #if __has_feature(objc_subscripting) 14 @interface XNSMutableArray 15 - (id)objectAtIndexedSubscript:(size_t)index; 16 - (void)setObject:(id)object atIndexedSubscript:(size_t)index; 17 #endif 18 @end 19 20 @interface NSMutableDictionary 21 - (id)objectForKeyedSubscript:(id)key; 22 - (void)setObject:(id)object forKeyedSubscript:(id)key; 23 @end 24 25 @class NSString; 26 27 int main() { 28 NSMutableArray<P> * array; 29 id oldObject = array[10]; 30 31 array[10] = oldObject; 32 33 id unknown_array; 34 oldObject = unknown_array[1]; 35 36 unknown_array[1] = oldObject; 37 38 NSMutableDictionary *dictionary; 39 NSString *key; 40 id newObject; 41 oldObject = dictionary[key]; 42 dictionary[key] = newObject; // replace oldObject with newObject 43 44 } 45 46