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:   "file": "{{.*}}",
27 // CHECK-NEXT:   "line": 3,
28 // CHECK-NEXT:   "col": 11,
29 // CHECK-NEXT:   "tokLen": 3
30 // CHECK-NEXT:  },
31 // CHECK-NEXT:  "range": {
32 // CHECK-NEXT:   "begin": {
33 // CHECK-NEXT:    "col": 1,
34 // CHECK-NEXT:    "tokLen": 9
35 // CHECK-NEXT:   },
36 // CHECK-NEXT:   "end": {
37 // CHECK-NEXT:    "line": 4,
38 // CHECK-NEXT:    "col": 1,
39 // CHECK-NEXT:    "tokLen": 1
40 // CHECK-NEXT:   }
41 // CHECK-NEXT:  },
42 // CHECK-NEXT:  "name": "foo"
43 // CHECK-NEXT: }
44 
45 
46 // CHECK:  "kind": "NamespaceDecl",
47 // CHECK-NEXT:  "loc": {
48 // CHECK-NEXT:   "line": 6,
49 // CHECK-NEXT:   "col": 11,
50 // CHECK-NEXT:   "tokLen": 1
51 // CHECK-NEXT:  },
52 // CHECK-NEXT:  "range": {
53 // CHECK-NEXT:   "begin": {
54 // CHECK-NEXT:    "col": 1,
55 // CHECK-NEXT:    "tokLen": 9
56 // CHECK-NEXT:   },
57 // CHECK-NEXT:   "end": {
58 // CHECK-NEXT:    "line": 7,
59 // CHECK-NEXT:    "col": 1,
60 // CHECK-NEXT:    "tokLen": 1
61 // CHECK-NEXT:   }
62 // CHECK-NEXT:  }
63 // CHECK-NEXT: }
64 
65 
66 // CHECK:  "kind": "NamespaceDecl",
67 // CHECK-NEXT:  "name": ""
68 // CHECK-NEXT: }
69 
70 
71 // CHECK:  "kind": "NamespaceDecl",
72 // CHECK-NEXT:  "loc": {
73 // CHECK-NEXT:   "line": 9,
74 // CHECK-NEXT:   "col": 11,
75 // CHECK-NEXT:   "tokLen": 3
76 // CHECK-NEXT:  },
77 // CHECK-NEXT:  "range": {
78 // CHECK-NEXT:   "begin": {
79 // CHECK-NEXT:    "col": 1,
80 // CHECK-NEXT:    "tokLen": 9
81 // CHECK-NEXT:   },
82 // CHECK-NEXT:   "end": {
83 // CHECK-NEXT:    "line": 12,
84 // CHECK-NEXT:    "col": 1,
85 // CHECK-NEXT:    "tokLen": 1
86 // CHECK-NEXT:   }
87 // CHECK-NEXT:  },
88 // CHECK-NEXT:  "name": "bar",
89 // CHECK-NEXT:  "inner": [
90 // CHECK-NEXT:   {
91 // CHECK-NEXT:    "id": "0x{{.*}}",
92 // CHECK-NEXT:    "kind": "NamespaceDecl",
93 // CHECK-NEXT:    "loc": {
94 // CHECK-NEXT:     "line": 10,
95 // CHECK-NEXT:     "col": 18,
96 // CHECK-NEXT:     "tokLen": 3
97 // CHECK-NEXT:    },
98 // CHECK-NEXT:    "range": {
99 // CHECK-NEXT:     "begin": {
100 // CHECK-NEXT:      "col": 1,
101 // CHECK-NEXT:      "tokLen": 6
102 // CHECK-NEXT:     },
103 // CHECK-NEXT:     "end": {
104 // CHECK-NEXT:      "line": 11,
105 // CHECK-NEXT:      "col": 1,
106 // CHECK-NEXT:      "tokLen": 1
107 // CHECK-NEXT:     }
108 // CHECK-NEXT:    },
109 // CHECK-NEXT:    "name": "__1",
110 // CHECK-NEXT:    "isInline": true
111 // CHECK-NEXT:   }
112 // CHECK-NEXT:  ]
113 // CHECK-NEXT: }
114 
115 
116 // CHECK:  "kind": "NamespaceDecl",
117 // CHECK-NEXT:  "loc": {
118 // CHECK-NEXT:   "line": 14,
119 // CHECK-NEXT:   "col": 11,
120 // CHECK-NEXT:   "tokLen": 3
121 // CHECK-NEXT:  },
122 // CHECK-NEXT:  "range": {
123 // CHECK-NEXT:   "begin": {
124 // CHECK-NEXT:    "col": 1,
125 // CHECK-NEXT:    "tokLen": 9
126 // CHECK-NEXT:   },
127 // CHECK-NEXT:   "end": {
128 // CHECK-NEXT:    "line": 15,
129 // CHECK-NEXT:    "col": 1,
130 // CHECK-NEXT:    "tokLen": 1
131 // CHECK-NEXT:   }
132 // CHECK-NEXT:  },
133 // CHECK-NEXT:  "name": "baz",
134 // CHECK-NEXT:  "inner": [
135 // CHECK-NEXT:   {
136 // CHECK-NEXT:    "id": "0x{{.*}}",
137 // CHECK-NEXT:    "kind": "NamespaceDecl",
138 // CHECK-NEXT:    "loc": {
139 // CHECK-NEXT:     "line": 14,
140 // CHECK-NEXT:     "col": 16,
141 // CHECK-NEXT:     "tokLen": 4
142 // CHECK-NEXT:    },
143 // CHECK-NEXT:    "range": {
144 // CHECK-NEXT:     "begin": {
145 // CHECK-NEXT:      "col": 14,
146 // CHECK-NEXT:      "tokLen": 2
147 // CHECK-NEXT:     },
148 // CHECK-NEXT:     "end": {
149 // CHECK-NEXT:      "line": 15,
150 // CHECK-NEXT:      "col": 1,
151 // CHECK-NEXT:      "tokLen": 1
152 // CHECK-NEXT:     }
153 // CHECK-NEXT:    },
154 // CHECK-NEXT:    "name": "quux"
155 // CHECK-NEXT:   }
156 // CHECK-NEXT:  ]
157 // CHECK-NEXT: }
158 
159 
160 // CHECK:  "kind": "NamespaceDecl",
161 // CHECK-NEXT:  "loc": {
162 // CHECK-NEXT:   "line": 17,
163 // CHECK-NEXT:   "col": 11,
164 // CHECK-NEXT:   "tokLen": 4
165 // CHECK-NEXT:  },
166 // CHECK-NEXT:  "range": {
167 // CHECK-NEXT:   "begin": {
168 // CHECK-NEXT:    "col": 1,
169 // CHECK-NEXT:    "tokLen": 9
170 // CHECK-NEXT:   },
171 // CHECK-NEXT:   "end": {
172 // CHECK-NEXT:    "line": 18,
173 // CHECK-NEXT:    "col": 1,
174 // CHECK-NEXT:    "tokLen": 1
175 // CHECK-NEXT:   }
176 // CHECK-NEXT:  },
177 // CHECK-NEXT:  "name": "quux",
178 // CHECK-NEXT:  "inner": [
179 // CHECK-NEXT:   {
180 // CHECK-NEXT:    "id": "0x{{.*}}",
181 // CHECK-NEXT:    "kind": "NamespaceDecl",
182 // CHECK-NEXT:    "loc": {
183 // CHECK-NEXT:     "line": 17,
184 // CHECK-NEXT:     "col": 24,
185 // CHECK-NEXT:     "tokLen": 7
186 // CHECK-NEXT:    },
187 // CHECK-NEXT:    "range": {
188 // CHECK-NEXT:     "begin": {
189 // CHECK-NEXT:      "col": 17,
190 // CHECK-NEXT:      "tokLen": 6
191 // CHECK-NEXT:     },
192 // CHECK-NEXT:     "end": {
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": "frobble",
199 // CHECK-NEXT:    "isInline": true
200 // CHECK-NEXT:   }
201 // CHECK-NEXT:  ]
202 // CHECK-NEXT: }
203