1// RUN: rm -rf %t && mkdir -p %t
2// RUN: clang-doc --output=%t --format=json --executor=standalone %s
3// RUN: FileCheck %s < %t/GlobalNamespace/index.json
4
5class MyClass {};
6
7void myFunction(int Param);
8
9namespace NestedNamespace {
10} // namespace NestedNamespace
11
12// FIXME: Global variables are not mapped or serialized.
13static int Global;
14
15enum Color {
16 RED,
17 GREEN,
18 BLUE = 5
19};
20
21typedef int MyTypedef;
22
23// CHECK: {
24// CHECK-NEXT: "Enums": [
25// CHECK-NEXT: {
26// CHECK-NEXT: "Location": {
27// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",
28// CHECK-NEXT: "LineNumber": 15
29// CHECK-NEXT: },
30// CHECK-NEXT: "Members": [
31// CHECK-NEXT: {
32// CHECK-NEXT: "Name": "RED",
33// CHECK-NEXT: "Value": "0"
34// CHECK-NEXT: },
35// CHECK-NEXT: {
36// CHECK-NEXT: "Name": "GREEN",
37// CHECK-NEXT: "Value": "1"
38// CHECK-NEXT: },
39// CHECK-NEXT: {
40// CHECK-NEXT: "Name": "BLUE",
41// CHECK-NEXT: "ValueExpr": "5"
42// CHECK-NEXT: }
43// CHECK-NEXT: ],
44// CHECK-NEXT: "Name": "Color",
45// CHECK-NEXT: "Scoped": false,
46// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
47// CHECK-NEXT: }
48// CHECK-NEXT: ],
49// CHECK-NEXT: "Functions": [
50// CHECK-NEXT: {
51// CHECK-NEXT: "IsStatic": false,
52// CHECK-NEXT: "Name": "myFunction",
53// CHECK-NEXT: "Params": [
54// CHECK-NEXT: {
55// CHECK-NEXT: "Name": "Param",
56// CHECK-NEXT: "Type": "int"
57// CHECK-NEXT: }
58// CHECK-NEXT: ],
59// CHECK-NEXT: "ReturnType": {
60// CHECK-NEXT: "IsBuiltIn": false,
61// CHECK-NEXT: "IsTemplate": false,
62// CHECK-NEXT: "Name": "void",
63// CHECK-NEXT: "QualName": "void",
64// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"
65// CHECK-NEXT: },
66// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
67// CHECK-NEXT: }
68// CHECK-NEXT: ],
69// CHECK-NEXT: "Name": "",
70// CHECK-NEXT: "Namespaces": [
71// CHECK-NEXT: {
72// CHECK-NEXT: "Name": "NestedNamespace",
73// CHECK-NEXT: "Path": "",
74// CHECK-NEXT: "QualName": "NestedNamespace",
75// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
76// CHECK-NEXT: }
77// CHECK-NEXT: ],
78// CHECK-NEXT: "Records": [
79// CHECK-NEXT: {
80// CHECK-NEXT: "Name": "MyClass",
81// CHECK-NEXT: "Path": "GlobalNamespace",
82// CHECK-NEXT: "QualName": "MyClass",
83// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
84// CHECK-NEXT: }
85// CHECK-NEXT: ],
86// CHECK-NEXT: "Typedefs": [
87// CHECK-NEXT: {
88// CHECK-NEXT: "IsUsing": false,
89// CHECK-NEXT: "Location": {
90// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",
91// CHECK-NEXT: "LineNumber": 21
92// CHECK-NEXT: },
93// CHECK-NEXT: "Name": "MyTypedef",
94// CHECK-NEXT: "TypeDeclaration": "",
95// CHECK-NEXT: "USR": "{{[0-9A-F]*}}",
96// CHECK-NEXT: "Underlying": {
97// CHECK-NEXT: "IsBuiltIn": false,
98// CHECK-NEXT: "IsTemplate": false,
99// CHECK-NEXT: "Name": "int",
100// CHECK-NEXT: "QualName": "int",
101// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"
102// CHECK-NEXT: }
103// CHECK-NEXT: }
104// CHECK-NEXT: ],
105// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"
106// CHECK-NOT: "Variables": [
107// CHECK-NEXT: }
108

source code of clang-tools-extra/test/clang-doc/json/namespace.cpp