xref: /llvm-project/clang/test/Index/extract-api-usr.m (revision 142c3d9d1414847fd154c300ff12505283027505)
1/// Foo docs
2struct Foo {
3    /// Bar docs
4    int bar;
5};
6
7/// Base docs
8@interface Base
9/// Base property docs
10@property struct Foo baseProperty;
11
12/// Base method docs
13- (void)baseMethodWithArg:(int)arg;
14@end
15
16/// Protocol docs
17@protocol Protocol
18/// Protocol property docs
19@property struct Foo protocolProperty;
20@end
21
22/// Derived docs
23@interface Derived: Base
24/// Derived method docs
25- (void)derivedMethodWithValue:(id<Protocol>)value;
26@end
27
28
29// Checking for Foo
30// RUN: c-index-test "-single-symbol-sgf-for=c:@S@Foo" %s | FileCheck -check-prefix=CHECK-FOO %s
31// CHECK-FOO: "parentContexts":[{"kind":"objective-c.struct","name":"Foo","usr":"c:@S@Foo"}]
32// CHECK-FOO-SAME: "relatedSymbols":[]
33// CHECK-FOO-SAME: "relationships":[]
34// CHECK-FOO-SAME: "text":"Foo docs"
35// CHECK-FOO-SAME: "kind":{"displayName":"Structure","identifier":"objective-c.struct"}
36// CHECK-FOO-SAME: "title":"Foo"
37
38
39// Checking for bar
40// RUN: c-index-test "-single-symbol-sgf-for=c:@S@Foo@FI@bar" %s | FileCheck -check-prefix=CHECK-BAR %s
41// CHECK-BAR: "parentContexts":[{"kind":"objective-c.struct","name":"Foo","usr":"c:@S@Foo"},{"kind":"objective-c.property","name":"bar","usr":"c:@S@Foo@FI@bar"}]
42// CHECK-BAR-SAME: "relatedSymbols":[]
43// CHECK-BAR-SAME: "relationships":[{"kind":"memberOf","source":"c:@S@Foo@FI@bar","target":"c:@S@Foo"
44// CHECK-BAR-SAME: "text":"Bar docs"
45// CHECK-BAR-SAME: "kind":{"displayName":"Instance Property","identifier":"objective-c.property"}
46// CHECK-BAR-SAME: "title":"bar"
47
48// Checking for Base
49// RUN: c-index-test "-single-symbol-sgf-for=c:objc(cs)Base" %s | FileCheck -check-prefix=CHECK-BASE %s
50// CHECK-BASE: "parentContexts":[{"kind":"objective-c.class","name":"Base","usr":"c:objc(cs)Base"}]
51// CHECK-BASE-SAME: "relatedSymbols":[]
52// CHECK-BASE-SAME: "relationships":[]
53// CHECK-BASE-SAME: "text":"Base docs"
54// CHECK-BASE-SAME: "kind":{"displayName":"Class","identifier":"objective-c.class"}
55// CHECK-BASE-SAME: "title":"Base"
56
57// Checking for baseProperty
58// RUN: c-index-test "-single-symbol-sgf-for=c:objc(cs)Base(py)baseProperty" %s | FileCheck -check-prefix=CHECK-BASEPROP %s
59// CHECK-BASEPROP: "parentContexts":[{"kind":"objective-c.class","name":"Base","usr":"c:objc(cs)Base"},{"kind":"objective-c.property","name":"baseProperty","usr":"c:objc(cs)Base(py)baseProperty"}]
60// CHECK-BASEPROP-SAME:"relatedSymbols":[{"accessLevel":"public","declarationLanguage":"objective-c"
61// CHECK-BASEPROP-SAME: "isSystem":false
62// CHECK-BASEPROP-SAME: "usr":"c:@S@Foo"}]
63// CHECK-BASEPROP-SAME: "relationships":[{"kind":"memberOf","source":"c:objc(cs)Base(py)baseProperty","target":"c:objc(cs)Base"
64// CHECK-BASEPROP-SAME: "text":"Base property docs"
65// CHECK-BASEPROP-SAME: "kind":{"displayName":"Instance Property","identifier":"objective-c.property"}
66// CHECK-BASEPROP-SAME: "title":"baseProperty"
67
68// Checking for baseMethodWithArg
69// RUN: c-index-test "-single-symbol-sgf-for=c:objc(cs)Base(im)baseMethodWithArg:" %s | FileCheck -check-prefix=CHECK-BASEMETHOD %s
70// CHECK-BASEMETHOD: "parentContexts":[{"kind":"objective-c.class","name":"Base","usr":"c:objc(cs)Base"},{"kind":"objective-c.method","name":"baseMethodWithArg:","usr":"c:objc(cs)Base(im)baseMethodWithArg:"}]
71// CHECK-BASEMETHOD-SAME:"relatedSymbols":[]
72// CHECK-BASEMETHOD-SAME: "relationships":[{"kind":"memberOf","source":"c:objc(cs)Base(im)baseMethodWithArg:","target":"c:objc(cs)Base"
73// CHECK-BASEMETHOD-SAME: "text":"Base method docs"
74// CHECK-BASEMETHOD-SAME: "kind":{"displayName":"Instance Method","identifier":"objective-c.method"}
75// CHECK-BASEMETHOD-SAME: "title":"baseMethodWithArg:"
76
77// Checking for Protocol
78// RUN: c-index-test "-single-symbol-sgf-for=c:objc(pl)Protocol" %s | FileCheck -check-prefix=CHECK-PROT %s
79// CHECK-PROT: "parentContexts":[{"kind":"objective-c.protocol","name":"Protocol","usr":"c:objc(pl)Protocol"}]
80// CHECK-PROT-SAME: "relatedSymbols":[]
81// CHECK-PROT-SAME: "relationships":[]
82// CHECK-PROT-SAME: "text":"Protocol docs"
83// CHECK-PROT-SAME: "kind":{"displayName":"Protocol","identifier":"objective-c.protocol"}
84// CHECK-PROT-SAME: "title":"Protocol"
85
86// Checking for protocolProperty
87// RUN: c-index-test "-single-symbol-sgf-for=c:objc(pl)Protocol(py)protocolProperty" %s | FileCheck -check-prefix=CHECK-PROTPROP %s
88// CHECK-PROTPROP: "parentContexts":[{"kind":"objective-c.protocol","name":"Protocol","usr":"c:objc(pl)Protocol"},{"kind":"objective-c.property","name":"protocolProperty","usr":"c:objc(pl)Protocol(py)protocolProperty"}]
89// CHECK-PROTPROP-SAME:"relatedSymbols":[{"accessLevel":"public","declarationLanguage":"objective-c"
90// CHECK-PROTPROP-SAME: "isSystem":false
91// CHECK-PROTPROP-SAME: "usr":"c:@S@Foo"}]
92// CHECK-PROTPROP-SAME: "relationships":[{"kind":"memberOf","source":"c:objc(pl)Protocol(py)protocolProperty","target":"c:objc(pl)Protocol"
93// CHECK-PROTPROP-SAME: "text":"Protocol property docs"
94// CHECK-PROTPROP-SAME: "kind":{"displayName":"Instance Property","identifier":"objective-c.property"}
95// CHECK-PROTPROP-SAME: "title":"protocolProperty"
96
97// Checking for Derived
98// RUN: c-index-test "-single-symbol-sgf-for=c:objc(cs)Derived" %s | FileCheck -check-prefix=CHECK-DERIVED %s
99// CHECK-DERIVED: "parentContexts":[{"kind":"objective-c.class","name":"Derived","usr":"c:objc(cs)Derived"}]
100// CHECK-DERIVED-SAME:"relatedSymbols":[{"accessLevel":"public","declarationLanguage":"objective-c"
101// CHECK-DERIVED-SAME: "isSystem":false
102// CHECK-DERIVED-SAME: "usr":"c:objc(cs)Base"}]
103// CHECK-DERIVED-SAME: "relationships":[{"kind":"inheritsFrom","source":"c:objc(cs)Derived","target":"c:objc(cs)Base"
104// CHECK-DERIVED-SAME: "text":"Derived docs"
105// CHECK-DERIVED-SAME: "kind":{"displayName":"Class","identifier":"objective-c.class"}
106// CHECK-DERIVED-SAME: "title":"Derived"
107
108// Checking for derivedMethodWithValue
109// RUN: c-index-test "-single-symbol-sgf-for=c:objc(cs)Derived(im)derivedMethodWithValue:" %s | FileCheck -check-prefix=CHECK-DERIVEDMETHOD %s
110// CHECK-DERIVEDMETHOD: "parentContexts":[{"kind":"objective-c.class","name":"Derived","usr":"c:objc(cs)Derived"},{"kind":"objective-c.method","name":"derivedMethodWithValue:","usr":"c:objc(cs)Derived(im)derivedMethodWithValue:"}]
111// CHECK-DERIVEDMETHOD-SAME:"relatedSymbols":[]
112// CHECK-DERIVEDMETHOD-SAME: "relationships":[{"kind":"memberOf","source":"c:objc(cs)Derived(im)derivedMethodWithValue:","target":"c:objc(cs)Derived"
113// CHECK-DERIVEDMETHOD-SAME: "text":"Derived method docs"
114// CHECK-DERIVEDMETHOD-SAME: "kind":{"displayName":"Instance Method","identifier":"objective-c.method"}
115// CHECK-DERIVEDMETHOD-SAME: "title":"derivedMethodWithValue:"
116