Home | History | Annotate | Download | only in CodeGenObjC
      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