[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / AST / ast-dump-namespace-json.cpp
blob4ecc3cd8127e634e2fe808324d00dd30e2355945
1 // RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++2a -ast-dump=json %s | FileCheck %s
3 namespace foo {
6 namespace {
9 namespace bar {
10 inline namespace __1 {
14 namespace baz::quux {
17 namespace quux::inline frobble {
20 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
21 // using --filters=NamespaceDecl
23 // CHECK-NOT: {{^}}Dumping
24 // CHECK: "kind": "NamespaceDecl",
25 // CHECK-NEXT: "loc": {
26 // CHECK-NEXT: "offset": {{[0-9]+}},
27 // CHECK-NEXT: "file": "{{.*}}",
28 // CHECK-NEXT: "line": 3,
29 // CHECK-NEXT: "col": 11,
30 // CHECK-NEXT: "tokLen": 3
31 // CHECK-NEXT: },
32 // CHECK-NEXT: "range": {
33 // CHECK-NEXT: "begin": {
34 // CHECK-NEXT: "offset": {{[0-9]+}},
35 // CHECK-NEXT: "col": 1,
36 // CHECK-NEXT: "tokLen": 9
37 // CHECK-NEXT: },
38 // CHECK-NEXT: "end": {
39 // CHECK-NEXT: "offset": {{[0-9]+}},
40 // CHECK-NEXT: "line": 4,
41 // CHECK-NEXT: "col": 1,
42 // CHECK-NEXT: "tokLen": 1
43 // CHECK-NEXT: }
44 // CHECK-NEXT: },
45 // CHECK-NEXT: "name": "foo"
46 // CHECK-NEXT: }
48 // CHECK-NOT: {{^}}Dumping
49 // CHECK: "kind": "NamespaceDecl",
50 // CHECK-NEXT: "loc": {
51 // CHECK-NEXT: "offset": {{[0-9]+}},
52 // CHECK-NEXT: "line": 6,
53 // CHECK-NEXT: "col": 11,
54 // CHECK-NEXT: "tokLen": 1
55 // CHECK-NEXT: },
56 // CHECK-NEXT: "range": {
57 // CHECK-NEXT: "begin": {
58 // CHECK-NEXT: "offset": {{[0-9]+}},
59 // CHECK-NEXT: "col": 1,
60 // CHECK-NEXT: "tokLen": 9
61 // CHECK-NEXT: },
62 // CHECK-NEXT: "end": {
63 // CHECK-NEXT: "offset": {{[0-9]+}},
64 // CHECK-NEXT: "line": 7,
65 // CHECK-NEXT: "col": 1,
66 // CHECK-NEXT: "tokLen": 1
67 // CHECK-NEXT: }
68 // CHECK-NEXT: }
69 // CHECK-NEXT: }
71 // CHECK-NOT: {{^}}Dumping
72 // CHECK: "kind": "NamespaceDecl",
73 // CHECK-NEXT: "name": ""
74 // CHECK-NEXT: }
76 // CHECK-NOT: {{^}}Dumping
77 // CHECK: "kind": "NamespaceDecl",
78 // CHECK-NEXT: "loc": {
79 // CHECK-NEXT: "offset": {{[0-9]+}},
80 // CHECK-NEXT: "line": 9,
81 // CHECK-NEXT: "col": 11,
82 // CHECK-NEXT: "tokLen": 3
83 // CHECK-NEXT: },
84 // CHECK-NEXT: "range": {
85 // CHECK-NEXT: "begin": {
86 // CHECK-NEXT: "offset": {{[0-9]+}},
87 // CHECK-NEXT: "col": 1,
88 // CHECK-NEXT: "tokLen": 9
89 // CHECK-NEXT: },
90 // CHECK-NEXT: "end": {
91 // CHECK-NEXT: "offset": {{[0-9]+}},
92 // CHECK-NEXT: "line": 12,
93 // CHECK-NEXT: "col": 1,
94 // CHECK-NEXT: "tokLen": 1
95 // CHECK-NEXT: }
96 // CHECK-NEXT: },
97 // CHECK-NEXT: "name": "bar",
98 // CHECK-NEXT: "inner": [
99 // CHECK-NEXT: {
100 // CHECK-NEXT: "id": "0x{{.*}}",
101 // CHECK-NEXT: "kind": "NamespaceDecl",
102 // CHECK-NEXT: "loc": {
103 // CHECK-NEXT: "offset": {{[0-9]+}},
104 // CHECK-NEXT: "line": 10,
105 // CHECK-NEXT: "col": 18,
106 // CHECK-NEXT: "tokLen": 3
107 // CHECK-NEXT: },
108 // CHECK-NEXT: "range": {
109 // CHECK-NEXT: "begin": {
110 // CHECK-NEXT: "offset": {{[0-9]+}},
111 // CHECK-NEXT: "col": 1,
112 // CHECK-NEXT: "tokLen": 6
113 // CHECK-NEXT: },
114 // CHECK-NEXT: "end": {
115 // CHECK-NEXT: "offset": {{[0-9]+}},
116 // CHECK-NEXT: "line": 11,
117 // CHECK-NEXT: "col": 1,
118 // CHECK-NEXT: "tokLen": 1
119 // CHECK-NEXT: }
120 // CHECK-NEXT: },
121 // CHECK-NEXT: "name": "__1",
122 // CHECK-NEXT: "isInline": true
123 // CHECK-NEXT: }
124 // CHECK-NEXT: ]
125 // CHECK-NEXT: }
127 // CHECK-NOT: {{^}}Dumping
128 // CHECK: "kind": "NamespaceDecl",
129 // CHECK-NEXT: "loc": {
130 // CHECK-NEXT: "offset": {{[0-9]+}},
131 // CHECK-NEXT: "line": 14,
132 // CHECK-NEXT: "col": 11,
133 // CHECK-NEXT: "tokLen": 3
134 // CHECK-NEXT: },
135 // CHECK-NEXT: "range": {
136 // CHECK-NEXT: "begin": {
137 // CHECK-NEXT: "offset": {{[0-9]+}},
138 // CHECK-NEXT: "col": 1,
139 // CHECK-NEXT: "tokLen": 9
140 // CHECK-NEXT: },
141 // CHECK-NEXT: "end": {
142 // CHECK-NEXT: "offset": {{[0-9]+}},
143 // CHECK-NEXT: "line": 15,
144 // CHECK-NEXT: "col": 1,
145 // CHECK-NEXT: "tokLen": 1
146 // CHECK-NEXT: }
147 // CHECK-NEXT: },
148 // CHECK-NEXT: "name": "baz",
149 // CHECK-NEXT: "inner": [
150 // CHECK-NEXT: {
151 // CHECK-NEXT: "id": "0x{{.*}}",
152 // CHECK-NEXT: "kind": "NamespaceDecl",
153 // CHECK-NEXT: "loc": {
154 // CHECK-NEXT: "offset": {{[0-9]+}},
155 // CHECK-NEXT: "line": 14,
156 // CHECK-NEXT: "col": 16,
157 // CHECK-NEXT: "tokLen": 4
158 // CHECK-NEXT: },
159 // CHECK-NEXT: "range": {
160 // CHECK-NEXT: "begin": {
161 // CHECK-NEXT: "offset": {{[0-9]+}},
162 // CHECK-NEXT: "col": 14,
163 // CHECK-NEXT: "tokLen": 2
164 // CHECK-NEXT: },
165 // CHECK-NEXT: "end": {
166 // CHECK-NEXT: "offset": {{[0-9]+}},
167 // CHECK-NEXT: "line": 15,
168 // CHECK-NEXT: "col": 1,
169 // CHECK-NEXT: "tokLen": 1
170 // CHECK-NEXT: }
171 // CHECK-NEXT: },
172 // CHECK-NEXT: "name": "quux"
173 // CHECK-NEXT: "isNested": true
174 // CHECK-NEXT: }
175 // CHECK-NEXT: ]
176 // CHECK-NEXT: }
178 // CHECK-NOT: {{^}}Dumping
179 // CHECK: "kind": "NamespaceDecl",
180 // CHECK-NEXT: "loc": {
181 // CHECK-NEXT: "offset": {{[0-9]+}},
182 // CHECK-NEXT: "line": 17,
183 // CHECK-NEXT: "col": 11,
184 // CHECK-NEXT: "tokLen": 4
185 // CHECK-NEXT: },
186 // CHECK-NEXT: "range": {
187 // CHECK-NEXT: "begin": {
188 // CHECK-NEXT: "offset": {{[0-9]+}},
189 // CHECK-NEXT: "col": 1,
190 // CHECK-NEXT: "tokLen": 9
191 // CHECK-NEXT: },
192 // CHECK-NEXT: "end": {
193 // CHECK-NEXT: "offset": {{[0-9]+}},
194 // CHECK-NEXT: "line": 18,
195 // CHECK-NEXT: "col": 1,
196 // CHECK-NEXT: "tokLen": 1
197 // CHECK-NEXT: }
198 // CHECK-NEXT: },
199 // CHECK-NEXT: "name": "quux"
200 // CHECK-NEXT: "inner": [
201 // CHECK-NEXT: {
202 // CHECK-NEXT: "id": "0x{{.*}}",
203 // CHECK-NEXT: "kind": "NamespaceDecl",
204 // CHECK-NEXT: "loc": {
205 // CHECK-NEXT: "offset": {{[0-9]+}},
206 // CHECK-NEXT: "line": 17,
207 // CHECK-NEXT: "col": 24,
208 // CHECK-NEXT: "tokLen": 7
209 // CHECK-NEXT: },
210 // CHECK-NEXT: "range": {
211 // CHECK-NEXT: "begin": {
212 // CHECK-NEXT: "offset": {{[0-9]+}},
213 // CHECK-NEXT: "col": 17,
214 // CHECK-NEXT: "tokLen": 6
215 // CHECK-NEXT: },
216 // CHECK-NEXT: "end": {
217 // CHECK-NEXT: "offset": {{[0-9]+}},
218 // CHECK-NEXT: "line": 18,
219 // CHECK-NEXT: "col": 1,
220 // CHECK-NEXT: "tokLen": 1
221 // CHECK-NEXT: }
222 // CHECK-NEXT: },
223 // CHECK-NEXT: "name": "frobble",
224 // CHECK-NEXT: "isInline": true,
225 // CHECK-NEXT: "isNested": true
226 // CHECK-NEXT: }
227 // CHECK-NEXT: ]
228 // CHECK-NEXT: }