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