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

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