1+ // RUN: rm -rf %t && mkdir -p %t
2+ // RUN: clang-doc --output=%t --format=json --executor=standalone %s
3+ // RUN: FileCheck %s < %t/json/GlobalNamespace/_ZTV7MyClass.json
4+
5+ class Virtual {};
6+ class Foo : virtual Virtual {};
7+ class Bar : Foo {};
8+ class Fizz : virtual Virtual {};
9+ class Buzz : Fizz {};
10+
11+ class MyClass : Bar, Buzz {};
12+
13+ // CHECK: "Bases": [
14+ // CHECK-NEXT: {
15+ // CHECK-NEXT: "Access": "private",
16+ // CHECK-NEXT: "InfoType": "record",
17+ // CHECK-NEXT: "IsParent": true,
18+ // CHECK-NEXT: "IsTypedef": false,
19+ // CHECK-NEXT: "IsVirtual": false,
20+ // CHECK-NEXT: "MangledName": "",
21+ // CHECK-NEXT: "Name": "Bar",
22+ // CHECK-NEXT: "Path": "GlobalNamespace",
23+ // CHECK-NEXT: "TagType": "struct",
24+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
25+ // CHECK-NEXT: },
26+ // CHECK-NEXT: {
27+ // CHECK-NEXT: "Access": "private",
28+ // CHECK-NEXT: "InfoType": "record",
29+ // CHECK-NEXT: "IsParent": false,
30+ // CHECK-NEXT: "IsTypedef": false,
31+ // CHECK-NEXT: "IsVirtual": false,
32+ // CHECK-NEXT: "MangledName": "",
33+ // CHECK-NEXT: "Name": "Foo",
34+ // CHECK-NEXT: "Path": "GlobalNamespace",
35+ // CHECK-NEXT: "TagType": "struct",
36+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
37+ // CHECK-NEXT: },
38+ // CHECK-NEXT: {
39+ // CHECK-NEXT: "Access": "private",
40+ // CHECK-NEXT: "InfoType": "record",
41+ // CHECK-NEXT: "IsParent": false,
42+ // CHECK-NEXT: "IsTypedef": false,
43+ // CHECK-NEXT: "IsVirtual": true,
44+ // CHECK-NEXT: "MangledName": "",
45+ // CHECK-NEXT: "Name": "Virtual",
46+ // CHECK-NEXT: "Path": "GlobalNamespace",
47+ // CHECK-NEXT: "TagType": "struct",
48+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
49+ // CHECK-NEXT: },
50+ // CHECK-NEXT: {
51+ // CHECK-NEXT: "Access": "private",
52+ // CHECK-NEXT: "InfoType": "record",
53+ // CHECK-NEXT: "IsParent": true,
54+ // CHECK-NEXT: "IsTypedef": false,
55+ // CHECK-NEXT: "IsVirtual": false,
56+ // CHECK-NEXT: "MangledName": "",
57+ // CHECK-NEXT: "Name": "Buzz",
58+ // CHECK-NEXT: "Path": "GlobalNamespace",
59+ // CHECK-NEXT: "TagType": "struct",
60+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
61+ // CHECK-NEXT: },
62+ // CHECK-NEXT: {
63+ // CHECK-NEXT: "Access": "private",
64+ // CHECK-NEXT: "InfoType": "record",
65+ // CHECK-NEXT: "IsParent": false,
66+ // CHECK-NEXT: "IsTypedef": false,
67+ // CHECK-NEXT: "IsVirtual": false,
68+ // CHECK-NEXT: "MangledName": "",
69+ // CHECK-NEXT: "Name": "Fizz",
70+ // CHECK-NEXT: "Path": "GlobalNamespace",
71+ // CHECK-NEXT: "TagType": "struct",
72+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
73+ // CHECK-NEXT: },
74+ // CHECK-NEXT: {
75+ // CHECK-NEXT: "Access": "private",
76+ // CHECK-NEXT: "End": true,
77+ // CHECK-NEXT: "InfoType": "record",
78+ // CHECK-NEXT: "IsParent": false,
79+ // CHECK-NEXT: "IsTypedef": false,
80+ // CHECK-NEXT: "IsVirtual": true,
81+ // CHECK-NEXT: "MangledName": "",
82+ // CHECK-NEXT: "Name": "Virtual",
83+ // CHECK-NEXT: "Path": "GlobalNamespace",
84+ // CHECK-NEXT: "TagType": "struct",
85+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
86+ // CHECK-NEXT: }
87+ // CHECK-NEXT: ],
88+ // CHECK: "Parents": [
89+ // CHECK-NEXT: {
90+ // CHECK-NEXT: "Name": "Bar",
91+ // CHECK-NEXT: "Path": "GlobalNamespace",
92+ // CHECK-NEXT: "QualName": "Bar",
93+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
94+ // CHECK-NEXT: },
95+ // CHECK-NEXT: {
96+ // CHECK-NEXT: "End": true,
97+ // CHECK-NEXT: "Name": "Buzz",
98+ // CHECK-NEXT: "Path": "GlobalNamespace",
99+ // CHECK-NEXT: "QualName": "Buzz",
100+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
101+ // CHECK-NEXT: }
102+ // CHECK-NEXT: ],
103+ // CHECK: "VirtualParents": [
104+ // CHECK-NEXT: {
105+ // CHECK-NEXT: "End": true,
106+ // CHECK-NEXT: "Name": "Virtual",
107+ // CHECK-NEXT: "Path": "GlobalNamespace",
108+ // CHECK-NEXT: "QualName": "Virtual",
109+ // CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
110+ // CHECK-NEXT: }
111+ // CHECK-NEXT: ]
0 commit comments