1 // RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++2a -ast-dump=json %s | FileCheck %s
2 
3 namespace foo {
4 }
5 
6 namespace {
7 }
8 
9 namespace bar {
10 inline namespace __1 {
11 }
12 }
13 
14 namespace baz::quux {
15 }
16 
17 namespace quux::inline frobble {
18 }
19 
20 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
21 // using --filters=NamespaceDecl
22 
23 
24 // CHECK:  "kind": "NamespaceDecl",
25 // CHECK-NEXT:  "loc": {
26 // CHECK-NEXT:   "offset": 98,
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": 88,
35 // CHECK-NEXT:    "col": 1,
36 // CHECK-NEXT:    "tokLen": 9
37 // CHECK-NEXT:   },
38 // CHECK-NEXT:   "end": {
39 // CHECK-NEXT:    "offset": 104,
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: }
47 
48 
49 // CHECK:  "kind": "NamespaceDecl",
50 // CHECK-NEXT:  "loc": {
51 // CHECK-NEXT:   "offset": 117,
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": 107,
59 // CHECK-NEXT:    "col": 1,
60 // CHECK-NEXT:    "tokLen": 9
61 // CHECK-NEXT:   },
62 // CHECK-NEXT:   "end": {
63 // CHECK-NEXT:    "offset": 119,
64 // CHECK-NEXT:    "line": 7,
65 // CHECK-NEXT:    "col": 1,
66 // CHECK-NEXT:    "tokLen": 1
67 // CHECK-NEXT:   }
68 // CHECK-NEXT:  }
69 // CHECK-NEXT: }
70 
71 
72 // CHECK:  "kind": "NamespaceDecl",
73 // CHECK-NEXT:  "name": ""
74 // CHECK-NEXT: }
75 
76 
77 // CHECK:  "kind": "NamespaceDecl",
78 // CHECK-NEXT:  "loc": {
79 // CHECK-NEXT:   "offset": 132,
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": 122,
87 // CHECK-NEXT:    "col": 1,
88 // CHECK-NEXT:    "tokLen": 9
89 // CHECK-NEXT:   },
90 // CHECK-NEXT:   "end": {
91 // CHECK-NEXT:    "offset": 163,
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": 155,
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": 138,
111 // CHECK-NEXT:      "col": 1,
112 // CHECK-NEXT:      "tokLen": 6
113 // CHECK-NEXT:     },
114 // CHECK-NEXT:     "end": {
115 // CHECK-NEXT:      "offset": 161,
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: }
126 
127 
128 // CHECK:  "kind": "NamespaceDecl",
129 // CHECK-NEXT:  "loc": {
130 // CHECK-NEXT:   "offset": 176,
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": 166,
138 // CHECK-NEXT:    "col": 1,
139 // CHECK-NEXT:    "tokLen": 9
140 // CHECK-NEXT:   },
141 // CHECK-NEXT:   "end": {
142 // CHECK-NEXT:    "offset": 188,
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": 181,
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": 179,
162 // CHECK-NEXT:      "col": 14,
163 // CHECK-NEXT:      "tokLen": 2
164 // CHECK-NEXT:     },
165 // CHECK-NEXT:     "end": {
166 // CHECK-NEXT:      "offset": 188,
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:   }
174 // CHECK-NEXT:  ]
175 // CHECK-NEXT: }
176 
177 
178 // CHECK:  "kind": "NamespaceDecl",
179 // CHECK-NEXT:  "loc": {
180 // CHECK-NEXT:   "offset": 201,
181 // CHECK-NEXT:   "line": 17,
182 // CHECK-NEXT:   "col": 11,
183 // CHECK-NEXT:   "tokLen": 4
184 // CHECK-NEXT:  },
185 // CHECK-NEXT:  "range": {
186 // CHECK-NEXT:   "begin": {
187 // CHECK-NEXT:    "offset": 191,
188 // CHECK-NEXT:    "col": 1,
189 // CHECK-NEXT:    "tokLen": 9
190 // CHECK-NEXT:   },
191 // CHECK-NEXT:   "end": {
192 // CHECK-NEXT:    "offset": 224,
193 // CHECK-NEXT:    "line": 18,
194 // CHECK-NEXT:    "col": 1,
195 // CHECK-NEXT:    "tokLen": 1
196 // CHECK-NEXT:   }
197 // CHECK-NEXT:  },
198 // CHECK-NEXT:  "name": "quux",
199 // CHECK-NEXT:  "inner": [
200 // CHECK-NEXT:   {
201 // CHECK-NEXT:    "id": "0x{{.*}}",
202 // CHECK-NEXT:    "kind": "NamespaceDecl",
203 // CHECK-NEXT:    "loc": {
204 // CHECK-NEXT:     "offset": 214,
205 // CHECK-NEXT:     "line": 17,
206 // CHECK-NEXT:     "col": 24,
207 // CHECK-NEXT:     "tokLen": 7
208 // CHECK-NEXT:    },
209 // CHECK-NEXT:    "range": {
210 // CHECK-NEXT:     "begin": {
211 // CHECK-NEXT:      "offset": 207,
212 // CHECK-NEXT:      "col": 17,
213 // CHECK-NEXT:      "tokLen": 6
214 // CHECK-NEXT:     },
215 // CHECK-NEXT:     "end": {
216 // CHECK-NEXT:      "offset": 224,
217 // CHECK-NEXT:      "line": 18,
218 // CHECK-NEXT:      "col": 1,
219 // CHECK-NEXT:      "tokLen": 1
220 // CHECK-NEXT:     }
221 // CHECK-NEXT:    },
222 // CHECK-NEXT:    "name": "frobble",
223 // CHECK-NEXT:    "isInline": true
224 // CHECK-NEXT:   }
225 // CHECK-NEXT:  ]
226 // CHECK-NEXT: }
227