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