2 // RUN: %clang_cc1 -extract-api --pretty-sgf --emit-sgf-symbol-labels-for-testing \
3 // RUN: -triple arm64-apple-macosx -x c++-header %s -o %t/output.symbols.json -verify
6 // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETCOUNT
8 // GETCOUNT: "!testRelLabel": "memberOf $ c:@S@Foo@F@getCount# $ c:@S@Foo"
9 // GETCOUNT-LABEL: "!testLabel": "c:@S@Foo@F@getCount#"
10 // GETCOUNT: "accessLevel": "private",
11 // GETCOUNT: "declarationFragments": [
13 // GETCOUNT-NEXT: "kind": "typeIdentifier",
14 // GETCOUNT-NEXT: "preciseIdentifier": "c:I",
15 // GETCOUNT-NEXT: "spelling": "int"
18 // GETCOUNT-NEXT: "kind": "text",
19 // GETCOUNT-NEXT: "spelling": " "
22 // GETCOUNT-NEXT: "kind": "identifier",
23 // GETCOUNT-NEXT: "spelling": "getCount"
26 // GETCOUNT-NEXT: "kind": "text",
27 // GETCOUNT-NEXT: "spelling": "();"
30 // GETCOUNT: "functionSignature": {
31 // GETCOUNT-NEXT: "returns": [
33 // GETCOUNT-NEXT: "kind": "typeIdentifier",
34 // GETCOUNT-NEXT: "preciseIdentifier": "c:I",
35 // GETCOUNT-NEXT: "spelling": "int"
39 // GETCOUNT: "displayName": "Instance Method",
40 // GETCOUNT-NEXT: "identifier": "c++.method"
41 // GETCOUNT: "title": "getCount"
42 // GETCOUNT: "pathComponents": [
43 // GETCOUNT-NEXT: "Foo",
44 // GETCOUNT-NEXT: "getCount"
47 // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix SETL
48 void setLength(int length
) noexcept
;
49 // SETL: "!testRelLabel": "memberOf $ c:@S@Foo@F@setLength#I# $ c:@S@Foo"
50 // SETL-LABEL: "!testLabel": "c:@S@Foo@F@setLength#I#"
51 // SETL: "declarationFragments": [
53 // SETL-NEXT: "kind": "typeIdentifier",
54 // SETL-NEXT: "preciseIdentifier": "c:v",
55 // SETL-NEXT: "spelling": "void"
58 // SETL-NEXT: "kind": "text",
59 // SETL-NEXT: "spelling": " "
62 // SETL-NEXT: "kind": "identifier",
63 // SETL-NEXT: "spelling": "setLength"
66 // SETL-NEXT: "kind": "text",
67 // SETL-NEXT: "spelling": "("
70 // SETL-NEXT: "kind": "typeIdentifier",
71 // SETL-NEXT: "preciseIdentifier": "c:I",
72 // SETL-NEXT: "spelling": "int"
75 // SETL-NEXT: "kind": "text",
76 // SETL-NEXT: "spelling": " "
79 // SETL-NEXT: "kind": "internalParam",
80 // SETL-NEXT: "spelling": "length"
83 // SETL-NEXT: "kind": "text",
84 // SETL-NEXT: "spelling": ") "
87 // SETL-NEXT: "kind": "keyword",
88 // SETL-NEXT: "spelling": "noexcept"
91 // SETL-NEXT: "kind": "text",
92 // SETL-NEXT: "spelling": ";"
95 // SETL: "functionSignature": {
96 // SETL-NEXT: "parameters": [
98 // SETL-NEXT: "declarationFragments": [
100 // SETL-NEXT: "kind": "typeIdentifier",
101 // SETL-NEXT: "preciseIdentifier": "c:I",
102 // SETL-NEXT: "spelling": "int"
105 // SETL-NEXT: "kind": "text",
106 // SETL-NEXT: "spelling": " "
109 // SETL-NEXT: "kind": "internalParam",
110 // SETL-NEXT: "spelling": "length"
113 // SETL-NEXT: "name": "length"
116 // SETL-NEXT: "returns": [
118 // SETL-NEXT: "kind": "typeIdentifier",
119 // SETL-NEXT: "preciseIdentifier": "c:v",
120 // SETL-NEXT: "spelling": "void"
126 // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETFOO
127 static double getFoo();
128 // GETFOO: "!testRelLabel": "memberOf $ c:@S@Foo@F@getFoo#S $ c:@S@Foo"
130 // GETFOO-LABEL: "!testLabel": "c:@S@Foo@F@getFoo#S"
131 // GETFOO: "accessLevel": "public",
132 // GETFOO: "declarationFragments": [
134 // GETFOO-NEXT: "kind": "keyword",
135 // GETFOO-NEXT: "spelling": "static"
138 // GETFOO-NEXT: "kind": "text",
139 // GETFOO-NEXT: "spelling": " "
142 // GETFOO-NEXT: "kind": "typeIdentifier",
143 // GETFOO-NEXT: "preciseIdentifier": "c:d",
144 // GETFOO-NEXT: "spelling": "double"
147 // GETFOO-NEXT: "kind": "text",
148 // GETFOO-NEXT: "spelling": " "
151 // GETFOO-NEXT: "kind": "identifier",
152 // GETFOO-NEXT: "spelling": "getFoo"
155 // GETFOO-NEXT: "kind": "text",
156 // GETFOO-NEXT: "spelling": "();"
159 // GETFOO: "functionSignature": {
160 // GETFOO-NEXT: "returns": [
162 // GETFOO-NEXT: "kind": "typeIdentifier",
163 // GETFOO-NEXT: "preciseIdentifier": "c:d",
164 // GETFOO-NEXT: "spelling": "double"
169 // GETFOO-NEXT: "displayName": "Static Method",
170 // GETFOO-NEXT: "identifier": "c++.type.method"
174 // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETBAR
175 constexpr int getBar() const;
176 // GETBAR: "!testRelLabel": "memberOf $ c:@S@Foo@F@getBar#1 $ c:@S@Foo"
178 // GETBAR-LABEL: "!testLabel": "c:@S@Foo@F@getBar#1"
179 // GETBAR: "accessLevel": "protected"
180 // GETBAR: "declarationFragments": [
182 // GETBAR-NEXT: "kind": "keyword",
183 // GETBAR-NEXT: "spelling": "constexpr"
186 // GETBAR-NEXT: "kind": "text",
187 // GETBAR-NEXT: "spelling": " "
190 // GETBAR-NEXT: "kind": "typeIdentifier",
191 // GETBAR-NEXT: "preciseIdentifier": "c:I",
192 // GETBAR-NEXT: "spelling": "int"
195 // GETBAR-NEXT: "kind": "text",
196 // GETBAR-NEXT: "spelling": " "
199 // GETBAR-NEXT: "kind": "identifier",
200 // GETBAR-NEXT: "spelling": "getBar"
203 // GETBAR-NEXT: "kind": "text",
204 // GETBAR-NEXT: "spelling": "() "
207 // GETBAR-NEXT: "kind": "keyword",
208 // GETBAR-NEXT: "spelling": "const"
211 // GETBAR-NEXT: "kind": "text",
212 // GETBAR-NEXT: "spelling": ";"
217 // expected-no-diagnostics