@interface Other { @private int other_private; @protected int other_protected; @public int other_public; } @end @interface Super { @private int super_private; @protected int super_protected; @public int super_public; } @end @interface Super () { @private int super_ext_private; @protected int super_ext_protected; @public int super_ext_public; } @end @interface Sub : Super { @private int sub_private; @protected int sub_protected; @public int sub_public; } @end @implementation Sub - (void)method:(Sub *)sub with:(Other *)other { sub->super_protected = 1; other->other_public = 1; } void f(Sub *sub, Other *other) { sub->super_protected = 1; other->other_public = 1; } @end // RUN: c-index-test -code-completion-at=%s:43:8 -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-SUB %s // RUN: c-index-test -code-completion-at=%s:48:8 -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-SUB %s // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText sub_private} (35) // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText sub_protected} (35) // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText sub_public} (35) // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_ext_private} (35) (inaccessible) // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_ext_protected} (35) // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_ext_public} (35) // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_private} (37) (inaccessible) // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_protected} (37) // CHECK-SUB: ObjCIvarDecl:{ResultType int}{TypedText super_public} (37) // RUN: c-index-test -code-completion-at=%s:44:10 -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-OTHER %s // RUN: c-index-test -code-completion-at=%s:49:10 -fobjc-nonfragile-abi %s | FileCheck -check-prefix=CHECK-OTHER %s // CHECK-OTHER: ObjCIvarDecl:{ResultType int}{TypedText other_private} (35) (inaccessible) // CHECK-OTHER: ObjCIvarDecl:{ResultType int}{TypedText other_protected} (35) (inaccessible) // CHECK-OTHER: ObjCIvarDecl:{ResultType int}{TypedText other_public} (35)