229 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++2a -ast-dump=json %s | FileCheck %s2 3namespace foo {4}5 6namespace {7}8 9namespace bar {10inline namespace __1 {11}12}13 14namespace baz::quux {15}16 17namespace quux::inline frobble {18}19 20// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py21// using --filters=NamespaceDecl22 23// CHECK-NOT: {{^}}Dumping24// CHECK: "kind": "NamespaceDecl",25// CHECK-NEXT: "loc": {26// CHECK-NEXT: "offset": {{[0-9]+}},27// CHECK-NEXT: "file": "{{.*}}",28// CHECK-NEXT: "line": 3,29// CHECK-NEXT: "col": 11,30// CHECK-NEXT: "tokLen": 331// CHECK-NEXT: },32// CHECK-NEXT: "range": {33// CHECK-NEXT: "begin": {34// CHECK-NEXT: "offset": {{[0-9]+}},35// CHECK-NEXT: "col": 1,36// CHECK-NEXT: "tokLen": 937// CHECK-NEXT: },38// CHECK-NEXT: "end": {39// CHECK-NEXT: "offset": {{[0-9]+}},40// CHECK-NEXT: "line": 4,41// CHECK-NEXT: "col": 1,42// CHECK-NEXT: "tokLen": 143// CHECK-NEXT: }44// CHECK-NEXT: },45// CHECK-NEXT: "name": "foo"46// CHECK-NEXT: }47 48// CHECK-NOT: {{^}}Dumping49// CHECK: "kind": "NamespaceDecl",50// CHECK-NEXT: "loc": {51// CHECK-NEXT: "offset": {{[0-9]+}},52// CHECK-NEXT: "line": 6,53// CHECK-NEXT: "col": 11,54// CHECK-NEXT: "tokLen": 155// CHECK-NEXT: },56// CHECK-NEXT: "range": {57// CHECK-NEXT: "begin": {58// CHECK-NEXT: "offset": {{[0-9]+}},59// CHECK-NEXT: "col": 1,60// CHECK-NEXT: "tokLen": 961// CHECK-NEXT: },62// CHECK-NEXT: "end": {63// CHECK-NEXT: "offset": {{[0-9]+}},64// CHECK-NEXT: "line": 7,65// CHECK-NEXT: "col": 1,66// CHECK-NEXT: "tokLen": 167// CHECK-NEXT: }68// CHECK-NEXT: }69// CHECK-NEXT: }70 71// CHECK-NOT: {{^}}Dumping72// CHECK: "kind": "NamespaceDecl",73// CHECK-NEXT: "name": ""74// CHECK-NEXT: }75 76// CHECK-NOT: {{^}}Dumping77// CHECK: "kind": "NamespaceDecl",78// CHECK-NEXT: "loc": {79// CHECK-NEXT: "offset": {{[0-9]+}},80// CHECK-NEXT: "line": 9,81// CHECK-NEXT: "col": 11,82// CHECK-NEXT: "tokLen": 383// CHECK-NEXT: },84// CHECK-NEXT: "range": {85// CHECK-NEXT: "begin": {86// CHECK-NEXT: "offset": {{[0-9]+}},87// CHECK-NEXT: "col": 1,88// CHECK-NEXT: "tokLen": 989// CHECK-NEXT: },90// CHECK-NEXT: "end": {91// CHECK-NEXT: "offset": {{[0-9]+}},92// CHECK-NEXT: "line": 12,93// CHECK-NEXT: "col": 1,94// CHECK-NEXT: "tokLen": 195// 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": {{[0-9]+}},104// CHECK-NEXT: "line": 10,105// CHECK-NEXT: "col": 18,106// CHECK-NEXT: "tokLen": 3107// CHECK-NEXT: },108// CHECK-NEXT: "range": {109// CHECK-NEXT: "begin": {110// CHECK-NEXT: "offset": {{[0-9]+}},111// CHECK-NEXT: "col": 1,112// CHECK-NEXT: "tokLen": 6113// CHECK-NEXT: },114// CHECK-NEXT: "end": {115// CHECK-NEXT: "offset": {{[0-9]+}},116// CHECK-NEXT: "line": 11,117// CHECK-NEXT: "col": 1,118// CHECK-NEXT: "tokLen": 1119// CHECK-NEXT: }120// CHECK-NEXT: },121// CHECK-NEXT: "name": "__1",122// CHECK-NEXT: "isInline": true123// CHECK-NEXT: }124// CHECK-NEXT: ]125// CHECK-NEXT: }126 127// CHECK-NOT: {{^}}Dumping128// CHECK: "kind": "NamespaceDecl",129// CHECK-NEXT: "loc": {130// CHECK-NEXT: "offset": {{[0-9]+}},131// CHECK-NEXT: "line": 14,132// CHECK-NEXT: "col": 11,133// CHECK-NEXT: "tokLen": 3134// CHECK-NEXT: },135// CHECK-NEXT: "range": {136// CHECK-NEXT: "begin": {137// CHECK-NEXT: "offset": {{[0-9]+}},138// CHECK-NEXT: "col": 1,139// CHECK-NEXT: "tokLen": 9140// CHECK-NEXT: },141// CHECK-NEXT: "end": {142// CHECK-NEXT: "offset": {{[0-9]+}},143// CHECK-NEXT: "line": 15,144// CHECK-NEXT: "col": 1,145// CHECK-NEXT: "tokLen": 1146// 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": {{[0-9]+}},155// CHECK-NEXT: "line": 14,156// CHECK-NEXT: "col": 16,157// CHECK-NEXT: "tokLen": 4158// CHECK-NEXT: },159// CHECK-NEXT: "range": {160// CHECK-NEXT: "begin": {161// CHECK-NEXT: "offset": {{[0-9]+}},162// CHECK-NEXT: "col": 14,163// CHECK-NEXT: "tokLen": 2164// CHECK-NEXT: },165// CHECK-NEXT: "end": {166// CHECK-NEXT: "offset": {{[0-9]+}},167// CHECK-NEXT: "line": 15,168// CHECK-NEXT: "col": 1,169// CHECK-NEXT: "tokLen": 1170// CHECK-NEXT: }171// CHECK-NEXT: },172// CHECK-NEXT: "name": "quux"173// CHECK-NEXT: "isNested": true174// CHECK-NEXT: }175// CHECK-NEXT: ]176// CHECK-NEXT: }177 178// CHECK-NOT: {{^}}Dumping179// CHECK: "kind": "NamespaceDecl",180// CHECK-NEXT: "loc": {181// CHECK-NEXT: "offset": {{[0-9]+}},182// CHECK-NEXT: "line": 17,183// CHECK-NEXT: "col": 11,184// CHECK-NEXT: "tokLen": 4185// CHECK-NEXT: },186// CHECK-NEXT: "range": {187// CHECK-NEXT: "begin": {188// CHECK-NEXT: "offset": {{[0-9]+}},189// CHECK-NEXT: "col": 1,190// CHECK-NEXT: "tokLen": 9191// CHECK-NEXT: },192// CHECK-NEXT: "end": {193// CHECK-NEXT: "offset": {{[0-9]+}},194// CHECK-NEXT: "line": 18,195// CHECK-NEXT: "col": 1,196// CHECK-NEXT: "tokLen": 1197// CHECK-NEXT: }198// CHECK-NEXT: },199// CHECK-NEXT: "name": "quux"200// CHECK-NEXT: "inner": [201// CHECK-NEXT: {202// CHECK-NEXT: "id": "0x{{.*}}",203// CHECK-NEXT: "kind": "NamespaceDecl",204// CHECK-NEXT: "loc": {205// CHECK-NEXT: "offset": {{[0-9]+}},206// CHECK-NEXT: "line": 17,207// CHECK-NEXT: "col": 24,208// CHECK-NEXT: "tokLen": 7209// CHECK-NEXT: },210// CHECK-NEXT: "range": {211// CHECK-NEXT: "begin": {212// CHECK-NEXT: "offset": {{[0-9]+}},213// CHECK-NEXT: "col": 17,214// CHECK-NEXT: "tokLen": 6215// CHECK-NEXT: },216// CHECK-NEXT: "end": {217// CHECK-NEXT: "offset": {{[0-9]+}},218// CHECK-NEXT: "line": 18,219// CHECK-NEXT: "col": 1,220// CHECK-NEXT: "tokLen": 1221// CHECK-NEXT: }222// CHECK-NEXT: },223// CHECK-NEXT: "name": "frobble",224// CHECK-NEXT: "isInline": true,225// CHECK-NEXT: "isNested": true226// CHECK-NEXT: }227// CHECK-NEXT: ]228// CHECK-NEXT: }229