
This patch changes JSON file serialization. Now, files are serialized to a single directory instead of nesting them based on namespaces. The global namespace retains the "index.json" name. This solves the problem of class template specializations being serialized to the same file as its base template. This is also planned as part of future integration with the Mustache generator which will consume the JSON files.
124 lines
3.8 KiB
C++
124 lines
3.8 KiB
C++
// RUN: rm -rf %t && mkdir -p %t
|
|
// RUN: clang-doc --output=%t --format=json --executor=standalone %s
|
|
// RUN: FileCheck %s < %t/index.json
|
|
|
|
class MyClass {};
|
|
|
|
void myFunction(int Param);
|
|
|
|
namespace NestedNamespace {
|
|
} // namespace NestedNamespace
|
|
|
|
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": 14
|
|
// 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": true,
|
|
// 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": 20
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: "Name": "MyTypedef",
|
|
// CHECK-NEXT: "TypeDeclaration": "",
|
|
// CHECK-NEXT: "USR": "{{[0-9A-F]*}}",
|
|
// CHECK-NEXT: "Underlying": {
|
|
// CHECK-NEXT: "IsBuiltIn": true,
|
|
// 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-NEXT: "Variables": [
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: "IsStatic": true,
|
|
// CHECK-NEXT: "Location": {
|
|
// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",
|
|
// CHECK-NEXT: "LineNumber": 12
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: "Name": "Global",
|
|
// CHECK-NEXT: "Type": {
|
|
// CHECK-NEXT: "IsBuiltIn": true,
|
|
// CHECK-NEXT: "IsTemplate": false,
|
|
// CHECK-NEXT: "Name": "int",
|
|
// CHECK-NEXT: "QualName": "int",
|
|
// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: ]
|
|
// CHECK-NEXT: }
|