summaryrefslogtreecommitdiffstats
path: root/clang/test/Index
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-11-03 19:00:24 +0000
committerDouglas Gregor <dgregor@apple.com>2011-11-03 19:00:24 +0000
commit21ceb18429aa62764d44c815e0ca52af28854b13 (patch)
tree7d17645253e5da398e3ef58c09a8d20bfa33f3c2 /clang/test/Index
parentbf9bba47a17d146bc1433858739c615867096b80 (diff)
downloadbcm5719-llvm-21ceb18429aa62764d44c815e0ca52af28854b13.tar.gz
bcm5719-llvm-21ceb18429aa62764d44c815e0ca52af28854b13.zip
Extend IsSimplyAccessible to check for Objective-C instance variable
accessibility. Fixes <rdar://problem/3727335>. llvm-svn: 143635
Diffstat (limited to 'clang/test/Index')
-rw-r--r--clang/test/Index/complete-ivar-access.m69
1 files changed, 69 insertions, 0 deletions
diff --git a/clang/test/Index/complete-ivar-access.m b/clang/test/Index/complete-ivar-access.m
new file mode 100644
index 00000000000..acd3883c727
--- /dev/null
+++ b/clang/test/Index/complete-ivar-access.m
@@ -0,0 +1,69 @@
+@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 %s | FileCheck -check-prefix=CHECK-SUB %s
+// RUN: c-index-test -code-completion-at=%s:48:8 %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 %s | FileCheck -check-prefix=CHECK-OTHER %s
+// RUN: c-index-test -code-completion-at=%s:49:10 %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)
OpenPOWER on IntegriCloud