Home | History | Annotate | Download | only in Index
      1 @interface Other {
      2 @private
      3   int other_private;
      4 @protected
      5   int other_protected;
      6 @public
      7   int other_public;
      8 }
      9 @end
     10 
     11 @interface Super {
     12 @private
     13   int super_private;
     14 @protected
     15   int super_protected;
     16 @public
     17   int super_public;
     18 }
     19 @end
     20 
     21 @interface Super () {
     22 @private
     23   int super_ext_private;
     24 @protected
     25   int super_ext_protected;
     26 @public
     27   int super_ext_public;
     28 }
     29 @end
     30 
     31 @interface Sub : Super {
     32 @private
     33   int sub_private;
     34 @protected
     35   int sub_protected;
     36 @public
     37   int sub_public;
     38 }
     39 @end
     40 
     41 @implementation Sub
     42 - (void)method:(Sub *)sub with:(Other *)other {
     43   sub->super_protected = 1;
     44   other->other_public = 1;
     45 }
     46 
     47 void f(Sub *sub, Other *other) {
     48   sub->super_protected = 1;
     49   other->other_public = 1;
     50 }
     51 @end
     52 
     53 // RUN: c-index-test -code-completion-at=%s:43:8 -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-SUB %s
     54 // RUN: c-index-test -code-completion-at=%s:48:8 -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-SUB %s
     55 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText sub_private} (35)
     56 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText sub_protected} (35)
     57 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText sub_public} (35)
     58 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_ext_private} (35) (inaccessible)
     59 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_ext_protected} (35)
     60 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_ext_public} (35)
     61 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_private} (37) (inaccessible)
     62 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_protected} (37)
     63 // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_public} (37)
     64 
     65 // RUN: c-index-test -code-completion-at=%s:44:10 -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-OTHER %s
     66 // RUN: c-index-test -code-completion-at=%s:49:10 -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-OTHER %s
     67 // CHECK-OTHER: ObjCIvarDecl:{ResultType int}{TypedText other_private} (35) (inaccessible)
     68 // CHECK-OTHER: ObjCIvarDecl:{ResultType int}{TypedText other_protected} (35) (inaccessible)
     69 // CHECK-OTHER: ObjCIvarDecl:{ResultType int}{TypedText other_public} (35)
     70