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