xref: /llvm-project/clang/test/Index/local-symbols.m (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: c-index-test -test-load-source local %s | FileCheck %s
2
3// The method 'bar' was also being reported outside the @implementation
4
5@interface Foo {
6  id x;
7}
8- (id) bar;
9@end
10
11@implementation Foo
12- (id) bar {
13  return 0;
14}
15@end
16
17@protocol Prot8380046
18@end
19
20@interface R8380046
21@end
22
23@interface R8380046 () <Prot8380046>
24@end
25
26@class NSString;
27
28void test() {
29  NSString *s = @"objc str";
30}
31
32// CHECK: local-symbols.m:5:12: ObjCInterfaceDecl=Foo:5:12 Extent=[5:1 - 9:5]
33// CHECK: local-symbols.m:6:6: ObjCIvarDecl=x:6:6 (Definition) Extent=[6:3 - 6:7]
34// CHECK: local-symbols.m:6:3: TypeRef=id:0:0 Extent=[6:3 - 6:5]
35// CHECK: local-symbols.m:8:8: ObjCInstanceMethodDecl=bar:8:8 Extent=[8:1 - 8:12]
36// CHECK: local-symbols.m:8:4: TypeRef=id:0:0 Extent=[8:4 - 8:6]
37// CHECK: local-symbols.m:11:17: ObjCImplementationDecl=Foo:11:17 (Definition) Extent=[11:1 - 15:2]
38// CHECK: local-symbols.m:12:8: ObjCInstanceMethodDecl=bar:12:8 (Definition) Extent=[12:1 - 14:2]
39// CHECK: local-symbols.m:12:4: TypeRef=id:0:0 Extent=[12:4 - 12:6]
40// CHECK: local-symbols.m:13:10: UnexposedExpr= Extent=[13:10 - 13:11]
41// CHECK: local-symbols.m:13:10: IntegerLiteral= Extent=[13:10 - 13:11]
42// CHECK: local-symbols.m:17:11: ObjCProtocolDecl=Prot8380046:17:11 (Definition) Extent=[17:1 - 18:5]
43// CHECK: local-symbols.m:20:12: ObjCInterfaceDecl=R8380046:20:12 Extent=[20:1 - 21:5]
44// CHECK: local-symbols.m:23:12: ObjCCategoryDecl=:23:12 Extent=[23:1 - 24:5]
45// CHECK: local-symbols.m:23:12: ObjCClassRef=R8380046:20:12 Extent=[23:12 - 23:20]
46// CHECK: local-symbols.m:23:25: ObjCProtocolRef=Prot8380046:17:11 Extent=[23:25 - 23:36]
47
48// CHECK: local-symbols.m:29:17: ObjCStringLiteral="objc str" Extent=[29:17 - 29:28]
49