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