Home | History | Annotate | Download | only in Index
      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 
     20 void 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 
     33 int test_more_props(Sub *s) {
     34   return s.myOtherPropLikeThing;
     35 }
     36 
     37 @interface Other
     38 @property Sub *sub;
     39 @end
     40 
     41 int 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