// RUN: rm -rf %t && mkdir -p %t // RUN: clang-doc --output=%t --format=json --executor=standalone %s // RUN: FileCheck %s < %t/GlobalNamespace/index.json class MyClass {}; void myFunction(int Param); namespace NestedNamespace { } // namespace NestedNamespace // FIXME: Global variables are not mapped or serialized. static int Global; enum Color { RED, GREEN, BLUE = 5 }; typedef int MyTypedef; // CHECK: { // CHECK-NEXT: "Enums": [ // CHECK-NEXT: { // CHECK-NEXT: "Location": { // CHECK-NEXT: "Filename": "{{.*}}namespace.cpp", // CHECK-NEXT: "LineNumber": 15 // CHECK-NEXT: }, // CHECK-NEXT: "Members": [ // CHECK-NEXT: { // CHECK-NEXT: "Name": "RED", // CHECK-NEXT: "Value": "0" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "Name": "GREEN", // CHECK-NEXT: "Value": "1" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "Name": "BLUE", // CHECK-NEXT: "ValueExpr": "5" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "Name": "Color", // CHECK-NEXT: "Scoped": false, // CHECK-NEXT: "USR": "{{[0-9A-F]*}}" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "Functions": [ // CHECK-NEXT: { // CHECK-NEXT: "IsStatic": false, // CHECK-NEXT: "Name": "myFunction", // CHECK-NEXT: "Params": [ // CHECK-NEXT: { // CHECK-NEXT: "Name": "Param", // CHECK-NEXT: "Type": "int" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "ReturnType": { // CHECK-NEXT: "IsBuiltIn": false, // CHECK-NEXT: "IsTemplate": false, // CHECK-NEXT: "Name": "void", // CHECK-NEXT: "QualName": "void", // CHECK-NEXT: "USR": "0000000000000000000000000000000000000000" // CHECK-NEXT: }, // CHECK-NEXT: "USR": "{{[0-9A-F]*}}" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "Name": "", // CHECK-NEXT: "Namespaces": [ // CHECK-NEXT: { // CHECK-NEXT: "Name": "NestedNamespace", // CHECK-NEXT: "Path": "", // CHECK-NEXT: "QualName": "NestedNamespace", // CHECK-NEXT: "USR": "{{[0-9A-F]*}}" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "Records": [ // CHECK-NEXT: { // CHECK-NEXT: "Name": "MyClass", // CHECK-NEXT: "Path": "GlobalNamespace", // CHECK-NEXT: "QualName": "MyClass", // CHECK-NEXT: "USR": "{{[0-9A-F]*}}" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "Typedefs": [ // CHECK-NEXT: { // CHECK-NEXT: "IsUsing": false, // CHECK-NEXT: "Location": { // CHECK-NEXT: "Filename": "{{.*}}namespace.cpp", // CHECK-NEXT: "LineNumber": 21 // CHECK-NEXT: }, // CHECK-NEXT: "Name": "MyTypedef", // CHECK-NEXT: "TypeDeclaration": "", // CHECK-NEXT: "USR": "{{[0-9A-F]*}}", // CHECK-NEXT: "Underlying": { // CHECK-NEXT: "IsBuiltIn": false, // CHECK-NEXT: "IsTemplate": false, // CHECK-NEXT: "Name": "int", // CHECK-NEXT: "QualName": "int", // CHECK-NEXT: "USR": "0000000000000000000000000000000000000000" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "USR": "0000000000000000000000000000000000000000" // CHECK-NOT: "Variables": [ // CHECK-NOT: { // CHECK-NOT: "IsStatic": true, // CHECK-NOT: "Location": { // CHECK-NOT: "Filename": "{{.*}}namespace.cpp", // CHECK-NOT: "LineNumber": 13 // CHECK-NOT: }, // CHECK-NOT: "Name": "Global", // CHECK-NOT: "Type": { // COM: FIXME: IsBuiltIn emits as its default value // CHECK-NOT: "IsBuiltIn": false, // CHECK-NOT: "IsTemplate": false, // CHECK-NOT: "Name": "int", // CHECK-NOT: "QualName": "int", // CHECK-NOT: "USR": "0000000000000000000000000000000000000000" // CHECK-NOT: }, // CHECK-NOT: "USR": "{{[0-9A-F]*}}" // CHECK-NOT: } // CHECK-NOT: ] // CHECK-NEXT: }