xref: /llvm-project/clang/test/AST/ast-dump-namespace-json.cpp (revision 15e76eed0c7662f8a4bce849a58637070d3b0a75)
12ce598a4SAaron Ballman // RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++2a -ast-dump=json %s | FileCheck %s
22ce598a4SAaron Ballman 
32ce598a4SAaron Ballman namespace foo {
42ce598a4SAaron Ballman }
560294f9dSAaron Ballman 
660294f9dSAaron Ballman namespace {
760294f9dSAaron Ballman }
860294f9dSAaron Ballman 
960294f9dSAaron Ballman namespace bar {
1060294f9dSAaron Ballman inline namespace __1 {
1160294f9dSAaron Ballman }
1260294f9dSAaron Ballman }
1360294f9dSAaron Ballman 
1460294f9dSAaron Ballman namespace baz::quux {
1560294f9dSAaron Ballman }
1660294f9dSAaron Ballman 
1760294f9dSAaron Ballman namespace quux::inline frobble {
1860294f9dSAaron Ballman }
1960294f9dSAaron Ballman 
2060294f9dSAaron Ballman // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
2160294f9dSAaron Ballman // using --filters=NamespaceDecl
2260294f9dSAaron Ballman 
23451d0596Swilliam woodruff // CHECK-NOT: {{^}}Dumping
242ce598a4SAaron Ballman // CHECK:  "kind": "NamespaceDecl",
252ce598a4SAaron Ballman // CHECK-NEXT:  "loc": {
266d8e5c96SChris Bieneman // CHECK-NEXT:   "offset": {{[0-9]+}},
272ce598a4SAaron Ballman // CHECK-NEXT:   "file": "{{.*}}",
28a612e34cSAaron Ballman // CHECK-NEXT:   "line": 3,
29a612e34cSAaron Ballman // CHECK-NEXT:   "col": 11,
30a612e34cSAaron Ballman // CHECK-NEXT:   "tokLen": 3
312ce598a4SAaron Ballman // CHECK-NEXT:  },
322ce598a4SAaron Ballman // CHECK-NEXT:  "range": {
332ce598a4SAaron Ballman // CHECK-NEXT:   "begin": {
346d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
352ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
36a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 9
372ce598a4SAaron Ballman // CHECK-NEXT:   },
382ce598a4SAaron Ballman // CHECK-NEXT:   "end": {
396d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
40a612e34cSAaron Ballman // CHECK-NEXT:    "line": 4,
412ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
42a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 1
432ce598a4SAaron Ballman // CHECK-NEXT:   }
442ce598a4SAaron Ballman // CHECK-NEXT:  },
452ce598a4SAaron Ballman // CHECK-NEXT:  "name": "foo"
4660294f9dSAaron Ballman // CHECK-NEXT: }
472ce598a4SAaron Ballman 
48451d0596Swilliam woodruff // CHECK-NOT: {{^}}Dumping
492ce598a4SAaron Ballman // CHECK:  "kind": "NamespaceDecl",
502ce598a4SAaron Ballman // CHECK-NEXT:  "loc": {
516d8e5c96SChris Bieneman // CHECK-NEXT:   "offset": {{[0-9]+}},
52a612e34cSAaron Ballman // CHECK-NEXT:   "line": 6,
532ce598a4SAaron Ballman // CHECK-NEXT:   "col": 11,
54a612e34cSAaron Ballman // CHECK-NEXT:   "tokLen": 1
552ce598a4SAaron Ballman // CHECK-NEXT:  },
562ce598a4SAaron Ballman // CHECK-NEXT:  "range": {
572ce598a4SAaron Ballman // CHECK-NEXT:   "begin": {
586d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
592ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
60a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 9
612ce598a4SAaron Ballman // CHECK-NEXT:   },
622ce598a4SAaron Ballman // CHECK-NEXT:   "end": {
636d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
64a612e34cSAaron Ballman // CHECK-NEXT:    "line": 7,
652ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
66a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 1
672ce598a4SAaron Ballman // CHECK-NEXT:   }
682ce598a4SAaron Ballman // CHECK-NEXT:  }
6960294f9dSAaron Ballman // CHECK-NEXT: }
7060294f9dSAaron Ballman 
71451d0596Swilliam woodruff // CHECK-NOT: {{^}}Dumping
7260294f9dSAaron Ballman // CHECK:  "kind": "NamespaceDecl",
732ce598a4SAaron Ballman // CHECK-NEXT:  "name": ""
742ce598a4SAaron Ballman // CHECK-NEXT: }
752ce598a4SAaron Ballman 
76451d0596Swilliam woodruff // CHECK-NOT: {{^}}Dumping
772ce598a4SAaron Ballman // CHECK:  "kind": "NamespaceDecl",
782ce598a4SAaron Ballman // CHECK-NEXT:  "loc": {
796d8e5c96SChris Bieneman // CHECK-NEXT:   "offset": {{[0-9]+}},
80a612e34cSAaron Ballman // CHECK-NEXT:   "line": 9,
812ce598a4SAaron Ballman // CHECK-NEXT:   "col": 11,
82a612e34cSAaron Ballman // CHECK-NEXT:   "tokLen": 3
832ce598a4SAaron Ballman // CHECK-NEXT:  },
842ce598a4SAaron Ballman // CHECK-NEXT:  "range": {
852ce598a4SAaron Ballman // CHECK-NEXT:   "begin": {
866d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
872ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
88a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 9
892ce598a4SAaron Ballman // CHECK-NEXT:   },
902ce598a4SAaron Ballman // CHECK-NEXT:   "end": {
916d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
92a612e34cSAaron Ballman // CHECK-NEXT:    "line": 12,
932ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
94a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 1
952ce598a4SAaron Ballman // CHECK-NEXT:   }
962ce598a4SAaron Ballman // CHECK-NEXT:  },
972ce598a4SAaron Ballman // CHECK-NEXT:  "name": "bar",
982ce598a4SAaron Ballman // CHECK-NEXT:  "inner": [
992ce598a4SAaron Ballman // CHECK-NEXT:   {
1002ce598a4SAaron Ballman // CHECK-NEXT:    "id": "0x{{.*}}",
1012ce598a4SAaron Ballman // CHECK-NEXT:    "kind": "NamespaceDecl",
1022ce598a4SAaron Ballman // CHECK-NEXT:    "loc": {
1036d8e5c96SChris Bieneman // CHECK-NEXT:     "offset": {{[0-9]+}},
104a612e34cSAaron Ballman // CHECK-NEXT:     "line": 10,
1052ce598a4SAaron Ballman // CHECK-NEXT:     "col": 18,
106a612e34cSAaron Ballman // CHECK-NEXT:     "tokLen": 3
1072ce598a4SAaron Ballman // CHECK-NEXT:    },
1082ce598a4SAaron Ballman // CHECK-NEXT:    "range": {
1092ce598a4SAaron Ballman // CHECK-NEXT:     "begin": {
1106d8e5c96SChris Bieneman // CHECK-NEXT:      "offset": {{[0-9]+}},
1112ce598a4SAaron Ballman // CHECK-NEXT:      "col": 1,
112a612e34cSAaron Ballman // CHECK-NEXT:      "tokLen": 6
1132ce598a4SAaron Ballman // CHECK-NEXT:     },
1142ce598a4SAaron Ballman // CHECK-NEXT:     "end": {
1156d8e5c96SChris Bieneman // CHECK-NEXT:      "offset": {{[0-9]+}},
116a612e34cSAaron Ballman // CHECK-NEXT:      "line": 11,
1172ce598a4SAaron Ballman // CHECK-NEXT:      "col": 1,
118a612e34cSAaron Ballman // CHECK-NEXT:      "tokLen": 1
1192ce598a4SAaron Ballman // CHECK-NEXT:     }
1202ce598a4SAaron Ballman // CHECK-NEXT:    },
1212ce598a4SAaron Ballman // CHECK-NEXT:    "name": "__1",
1222ce598a4SAaron Ballman // CHECK-NEXT:    "isInline": true
1232ce598a4SAaron Ballman // CHECK-NEXT:   }
1242ce598a4SAaron Ballman // CHECK-NEXT:  ]
12560294f9dSAaron Ballman // CHECK-NEXT: }
1262ce598a4SAaron Ballman 
127451d0596Swilliam woodruff // CHECK-NOT: {{^}}Dumping
1282ce598a4SAaron Ballman // CHECK:  "kind": "NamespaceDecl",
1292ce598a4SAaron Ballman // CHECK-NEXT:  "loc": {
1306d8e5c96SChris Bieneman // CHECK-NEXT:   "offset": {{[0-9]+}},
131a612e34cSAaron Ballman // CHECK-NEXT:   "line": 14,
1322ce598a4SAaron Ballman // CHECK-NEXT:   "col": 11,
133a612e34cSAaron Ballman // CHECK-NEXT:   "tokLen": 3
1342ce598a4SAaron Ballman // CHECK-NEXT:  },
1352ce598a4SAaron Ballman // CHECK-NEXT:  "range": {
1362ce598a4SAaron Ballman // CHECK-NEXT:   "begin": {
1376d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
1382ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
139a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 9
1402ce598a4SAaron Ballman // CHECK-NEXT:   },
1412ce598a4SAaron Ballman // CHECK-NEXT:   "end": {
1426d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
143a612e34cSAaron Ballman // CHECK-NEXT:    "line": 15,
1442ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
145a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 1
1462ce598a4SAaron Ballman // CHECK-NEXT:   }
1472ce598a4SAaron Ballman // CHECK-NEXT:  },
1482ce598a4SAaron Ballman // CHECK-NEXT:  "name": "baz",
1492ce598a4SAaron Ballman // CHECK-NEXT:  "inner": [
1502ce598a4SAaron Ballman // CHECK-NEXT:   {
1512ce598a4SAaron Ballman // CHECK-NEXT:    "id": "0x{{.*}}",
1522ce598a4SAaron Ballman // CHECK-NEXT:    "kind": "NamespaceDecl",
1532ce598a4SAaron Ballman // CHECK-NEXT:    "loc": {
1546d8e5c96SChris Bieneman // CHECK-NEXT:     "offset": {{[0-9]+}},
155a612e34cSAaron Ballman // CHECK-NEXT:     "line": 14,
1562ce598a4SAaron Ballman // CHECK-NEXT:     "col": 16,
157a612e34cSAaron Ballman // CHECK-NEXT:     "tokLen": 4
1582ce598a4SAaron Ballman // CHECK-NEXT:    },
1592ce598a4SAaron Ballman // CHECK-NEXT:    "range": {
1602ce598a4SAaron Ballman // CHECK-NEXT:     "begin": {
1616d8e5c96SChris Bieneman // CHECK-NEXT:      "offset": {{[0-9]+}},
1622ce598a4SAaron Ballman // CHECK-NEXT:      "col": 14,
163a612e34cSAaron Ballman // CHECK-NEXT:      "tokLen": 2
1642ce598a4SAaron Ballman // CHECK-NEXT:     },
1652ce598a4SAaron Ballman // CHECK-NEXT:     "end": {
1666d8e5c96SChris Bieneman // CHECK-NEXT:      "offset": {{[0-9]+}},
167a612e34cSAaron Ballman // CHECK-NEXT:      "line": 15,
1682ce598a4SAaron Ballman // CHECK-NEXT:      "col": 1,
169a612e34cSAaron Ballman // CHECK-NEXT:      "tokLen": 1
1702ce598a4SAaron Ballman // CHECK-NEXT:     }
1712ce598a4SAaron Ballman // CHECK-NEXT:    },
1722ce598a4SAaron Ballman // CHECK-NEXT:    "name": "quux"
173*15e76eedSNathan James // CHECK-NEXT:    "isNested": true
1742ce598a4SAaron Ballman // CHECK-NEXT:   }
1752ce598a4SAaron Ballman // CHECK-NEXT:  ]
17660294f9dSAaron Ballman // CHECK-NEXT: }
1772ce598a4SAaron Ballman 
178451d0596Swilliam woodruff // CHECK-NOT: {{^}}Dumping
1792ce598a4SAaron Ballman // CHECK:  "kind": "NamespaceDecl",
1802ce598a4SAaron Ballman // CHECK-NEXT:  "loc": {
1816d8e5c96SChris Bieneman // CHECK-NEXT:   "offset": {{[0-9]+}},
182a612e34cSAaron Ballman // CHECK-NEXT:   "line": 17,
1832ce598a4SAaron Ballman // CHECK-NEXT:   "col": 11,
184a612e34cSAaron Ballman // CHECK-NEXT:   "tokLen": 4
1852ce598a4SAaron Ballman // CHECK-NEXT:  },
1862ce598a4SAaron Ballman // CHECK-NEXT:  "range": {
1872ce598a4SAaron Ballman // CHECK-NEXT:   "begin": {
1886d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
1892ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
190a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 9
1912ce598a4SAaron Ballman // CHECK-NEXT:   },
1922ce598a4SAaron Ballman // CHECK-NEXT:   "end": {
1936d8e5c96SChris Bieneman // CHECK-NEXT:    "offset": {{[0-9]+}},
194a612e34cSAaron Ballman // CHECK-NEXT:    "line": 18,
1952ce598a4SAaron Ballman // CHECK-NEXT:    "col": 1,
196a612e34cSAaron Ballman // CHECK-NEXT:    "tokLen": 1
1972ce598a4SAaron Ballman // CHECK-NEXT:   }
1982ce598a4SAaron Ballman // CHECK-NEXT:  },
199*15e76eedSNathan James // CHECK-NEXT:  "name": "quux"
2002ce598a4SAaron Ballman // CHECK-NEXT:  "inner": [
2012ce598a4SAaron Ballman // CHECK-NEXT:   {
2022ce598a4SAaron Ballman // CHECK-NEXT:    "id": "0x{{.*}}",
2032ce598a4SAaron Ballman // CHECK-NEXT:    "kind": "NamespaceDecl",
2042ce598a4SAaron Ballman // CHECK-NEXT:    "loc": {
2056d8e5c96SChris Bieneman // CHECK-NEXT:     "offset": {{[0-9]+}},
206a612e34cSAaron Ballman // CHECK-NEXT:     "line": 17,
2072ce598a4SAaron Ballman // CHECK-NEXT:     "col": 24,
208a612e34cSAaron Ballman // CHECK-NEXT:     "tokLen": 7
2092ce598a4SAaron Ballman // CHECK-NEXT:    },
2102ce598a4SAaron Ballman // CHECK-NEXT:    "range": {
2112ce598a4SAaron Ballman // CHECK-NEXT:     "begin": {
2126d8e5c96SChris Bieneman // CHECK-NEXT:      "offset": {{[0-9]+}},
2132ce598a4SAaron Ballman // CHECK-NEXT:      "col": 17,
214a612e34cSAaron Ballman // CHECK-NEXT:      "tokLen": 6
2152ce598a4SAaron Ballman // CHECK-NEXT:     },
2162ce598a4SAaron Ballman // CHECK-NEXT:     "end": {
2176d8e5c96SChris Bieneman // CHECK-NEXT:      "offset": {{[0-9]+}},
218a612e34cSAaron Ballman // CHECK-NEXT:      "line": 18,
2192ce598a4SAaron Ballman // CHECK-NEXT:      "col": 1,
220a612e34cSAaron Ballman // CHECK-NEXT:      "tokLen": 1
2212ce598a4SAaron Ballman // CHECK-NEXT:     }
2222ce598a4SAaron Ballman // CHECK-NEXT:    },
2232ce598a4SAaron Ballman // CHECK-NEXT:    "name": "frobble",
224*15e76eedSNathan James // CHECK-NEXT:    "isInline": true,
225*15e76eedSNathan James // CHECK-NEXT:    "isNested": true
2262ce598a4SAaron Ballman // CHECK-NEXT:   }
2272ce598a4SAaron Ballman // CHECK-NEXT:  ]
2282ce598a4SAaron Ballman // CHECK-NEXT: }
229