diff options
author | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-15 17:10:06 +1100 |
---|---|---|
committer | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-15 17:10:06 +1100 |
commit | be1de4be954c80875ad4108e0a33e8e131b2f2c0 (patch) | |
tree | 1fbbecf276bf7c7bdcbb4dd446099d6d90eaa516 /clang/test/Index/complete-member-access.m | |
parent | c4626a62754862d20b41e8a46a3574264ea80e6d (diff) | |
parent | f1bd2e48c5324d3f7cda4090c87f8a5b6f463ce2 (diff) |
Merge branch 'master' of ssh://bitbucket.org/czan/honours
Diffstat (limited to 'clang/test/Index/complete-member-access.m')
-rw-r--r-- | clang/test/Index/complete-member-access.m | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/clang/test/Index/complete-member-access.m b/clang/test/Index/complete-member-access.m new file mode 100644 index 0000000..5e40be1 --- /dev/null +++ b/clang/test/Index/complete-member-access.m @@ -0,0 +1,77 @@ +/* Note: the RUN lines are near the end of the file, since line/column + matter for this test. */ + +@protocol MyProtocol +@property float ProtoProp; +@end + +@interface Super { + int SuperIVar; +} +@end +@interface Int : Super<MyProtocol> +{ + int IVar; +} + +@property int prop1; +@end + +void test_props(Int* ptr) { + ptr.prop1 = 0; + ptr->IVar = 0; +} + +@interface Sub : Int +@property int myProp; + +- (int)myProp; +- (int)myOtherPropLikeThing; +- (int)myOtherNonPropThing:(int)value; +@end + +int test_more_props(Sub *s) { + return s.myOtherPropLikeThing; +} + +@interface Other +@property Sub *sub; +@end + +int test_two_levels(Other *other) { + return other.sub.myProp; +} + +// RUN: c-index-test -code-completion-at=%s:21:7 %s | FileCheck -check-prefix=CHECK-CC1 %s +// CHECK-CC1: ObjCPropertyDecl:{ResultType int}{TypedText prop1} +// CHECK-CC1: ObjCPropertyDecl:{ResultType float}{TypedText ProtoProp} +// CHECK-CC1: Completion contexts: +// CHECK-CC1-NEXT: Objective-C property access +// CHECK-CC1-NEXT: Container Kind: ObjCInterfaceDecl +// CHECK-CC1-NEXT: Container is complete +// CHECK-CC1-NEXT: Container USR: c:objc(cs)Int +// RUN: c-index-test -code-completion-at=%s:22:8 %s | FileCheck -check-prefix=CHECK-CC2 %s +// CHECK-CC2: ObjCIvarDecl:{ResultType int}{TypedText IVar} (35) +// CHECK-CC2: ObjCIvarDecl:{ResultType int}{TypedText SuperIVar} (37) +// CHECK-CC2: Completion contexts: +// CHECK-CC2-NEXT: Arrow member access +// CHECK-CC2-NEXT: Container Kind: ObjCInterfaceDecl +// CHECK-CC2-NEXT: Container is complete +// CHECK-CC2-NEXT: Container USR: c:objc(cs)Int +// RUN: c-index-test -code-completion-at=%s:34:12 %s | FileCheck -check-prefix=CHECK-CC3 %s +// CHECK-CC3: ObjCInstanceMethodDecl:{ResultType int}{TypedText myOtherPropLikeThing} (37) +// CHECK-CC3: ObjCPropertyDecl:{ResultType int}{TypedText myProp} (35) +// CHECK-CC3: ObjCPropertyDecl:{ResultType int}{TypedText prop1} (35) +// CHECK-CC3: ObjCPropertyDecl:{ResultType float}{TypedText ProtoProp} (35) +// CHECK-CC3: Completion contexts: +// CHECK-CC3-NEXT: Objective-C property access +// CHECK-CC3-NEXT: Container Kind: ObjCInterfaceDecl +// CHECK-CC3-NEXT: Container is complete +// CHECK-CC3-NEXT: Container USR: c:objc(cs)Sub + +// RUN: c-index-test -code-completion-at=%s:42:20 %s | FileCheck -check-prefix=CHECK-CC4 %s +// CHECK-CC4: ObjCInstanceMethodDecl:{ResultType int}{TypedText myOtherPropLikeThing} (37) +// CHECK-CC4-NEXT: ObjCPropertyDecl:{ResultType int}{TypedText myProp} (35) +// CHECK-CC4-NEXT: ObjCPropertyDecl:{ResultType int}{TypedText prop1} (35) +// CHECK-CC4-NEXT: ObjCPropertyDecl:{ResultType float}{TypedText ProtoProp} (35) + |