1/* Note: the RUN lines are near the end of the file, since line/column 2 matter for this test. */ 3 4@protocol MyProtocol 5@property float ProtoProp; 6@end 7 8@interface Super { 9 int SuperIVar; 10} 11@end 12@interface Int : Super<MyProtocol> 13{ 14 int IVar; 15} 16 17@property int prop1; 18@end 19 20void test_props(Int* ptr) { 21 ptr.prop1 = 0; 22 ptr->IVar = 0; 23} 24 25@interface Sub : Int 26@property int myProp; 27 28- (int)myProp; 29- (int)myOtherPropLikeThing; 30- (int)myOtherNonPropThing:(int)value; 31@end 32 33int test_more_props(Sub *s) { 34 return s.myOtherPropLikeThing; 35} 36 37@interface Other 38@property Sub *sub; 39@end 40 41int test_two_levels(Other *other) { 42 return other.sub.myProp; 43} 44 45// RUN: c-index-test -code-completion-at=%s:21:7 %s | FileCheck -check-prefix=CHECK-CC1 %s 46// CHECK-CC1: ObjCPropertyDecl:{ResultType int}{TypedText prop1} 47// CHECK-CC1: ObjCPropertyDecl:{ResultType float}{TypedText ProtoProp} 48// CHECK-CC1: Completion contexts: 49// CHECK-CC1-NEXT: Objective-C property access 50// CHECK-CC1-NEXT: Container Kind: ObjCInterfaceDecl 51// CHECK-CC1-NEXT: Container is complete 52// CHECK-CC1-NEXT: Container USR: c:objc(cs)Int 53// RUN: c-index-test -code-completion-at=%s:22:8 %s | FileCheck -check-prefix=CHECK-CC2 %s 54// CHECK-CC2: ObjCIvarDecl:{ResultType int}{TypedText IVar} (35) 55// CHECK-CC2: ObjCIvarDecl:{ResultType int}{TypedText SuperIVar} (37) 56// CHECK-CC2: Completion contexts: 57// CHECK-CC2-NEXT: Arrow member access 58// CHECK-CC2-NEXT: Container Kind: ObjCInterfaceDecl 59// CHECK-CC2-NEXT: Container is complete 60// CHECK-CC2-NEXT: Container USR: c:objc(cs)Int 61// RUN: c-index-test -code-completion-at=%s:34:12 %s | FileCheck -check-prefix=CHECK-CC3 %s 62// CHECK-CC3: ObjCInstanceMethodDecl:{ResultType int}{TypedText myOtherPropLikeThing} (37) 63// CHECK-CC3: ObjCPropertyDecl:{ResultType int}{TypedText myProp} (35) 64// CHECK-CC3: ObjCPropertyDecl:{ResultType int}{TypedText prop1} (35) 65// CHECK-CC3: ObjCPropertyDecl:{ResultType float}{TypedText ProtoProp} (35) 66// CHECK-CC3: Completion contexts: 67// CHECK-CC3-NEXT: Objective-C property access 68// CHECK-CC3-NEXT: Container Kind: ObjCInterfaceDecl 69// CHECK-CC3-NEXT: Container is complete 70// CHECK-CC3-NEXT: Container USR: c:objc(cs)Sub 71 72// RUN: c-index-test -code-completion-at=%s:42:20 %s | FileCheck -check-prefix=CHECK-CC4 %s 73// CHECK-CC4: ObjCInstanceMethodDecl:{ResultType int}{TypedText myOtherPropLikeThing} (37) 74// CHECK-CC4-NEXT: ObjCPropertyDecl:{ResultType int}{TypedText myProp} (35) 75// CHECK-CC4-NEXT: ObjCPropertyDecl:{ResultType int}{TypedText prop1} (35) 76// CHECK-CC4-NEXT: ObjCPropertyDecl:{ResultType float}{TypedText ProtoProp} (35) 77 78