Skip to content

Commit 9ac14c7

Browse files
committed
[𝘀𝗽𝗿] initial version
Created using spr 1.3.6-beta.1
2 parents 6cfad63 + 32befec commit 9ac14c7

File tree

1 file changed

+146
-66
lines changed

1 file changed

+146
-66
lines changed
Lines changed: 146 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,156 @@
11
// RUN: rm -rf %t
22
// RUN: mkdir %t
3-
// RUN: echo "" > %t/compile_flags.txt
4-
// RUN: cp "%s" "%t/test.cpp"
5-
// RUN: clang-doc --doxygen --executor=standalone -p %t %t/test.cpp -output=%t/docs
6-
// RUN: cat %t/docs/index.yaml | FileCheck %s --check-prefix=CHECK
7-
// RUN: rm -rf %t
3+
4+
// RUN: clang-doc --doxygen --executor=standalone %s -output=%t/docs
5+
// RUN: cat %t/docs/index.yaml | FileCheck %s --check-prefix=YAML
6+
7+
// RUN: clang-doc --doxygen --executor=standalone %s -output=%t/docs --format=md
8+
// RUN: cat %t/docs/GlobalNamespace/index.md | FileCheck %s --check-prefix=MD
9+
10+
// YAML: ---
11+
// YAML-NEXT: USR: '{{([0-9A-F]{40})}}'
12+
// YAML-NEXT: ChildRecords:
13+
// YAML-NEXT: - Type: Record
14+
// YAML-NEXT: Name: 'tuple'
15+
// YAML-NEXT: QualName: 'tuple'
16+
// YAML-NEXT: USR: '{{([0-9A-F]{40})}}'
17+
// YAML-NEXT: Path: 'GlobalNamespace'
18+
19+
// MD: # Global Namespace
20+
// MD: ## Functions
21+
22+
template<class... T>
23+
void ParamPackFunction(T... args);
24+
25+
// YAML-NEXT: ChildFunctions:
26+
// YAML-NEXT: - USR: '{{([0-9A-F]{40})}}'
27+
// YAML-NEXT: Name: 'ParamPackFunction'
28+
// YAML-NEXT: Location:
29+
// YAML-NEXT: - LineNumber: [[# @LINE - 6]]
30+
// YAML-NEXT: Filename: '{{.*}}'
31+
// YAML-NEXT: Params:
32+
// YAML-NEXT: - Type:
33+
// YAML-NEXT: Name: 'T...'
34+
// YAML-NEXT: QualName: 'T...'
35+
// YAML-NEXT: Name: 'args'
36+
// YAML-NEXT: ReturnType:
37+
// YAML-NEXT: Type:
38+
// YAML-NEXT: Name: 'void'
39+
// YAML-NEXT: QualName: 'void'
40+
// YAML-NEXT: Template:
41+
// YAML-NEXT: Params:
42+
// YAML-NEXT: - Contents: 'class... T'
43+
44+
// MD: ### ParamPackFunction
45+
// MD: *void ParamPackFunction(T... args)*
846

947
template<typename T, int U = 1>
1048
void function(T x) {}
1149

50+
// YAML-NEXT: - USR: '{{([0-9A-F]{40})}}'
51+
// YAML-NEXT: Name: 'function'
52+
// YAML-NEXT: DefLocation:
53+
// YAML-NEXT: LineNumber: [[# @LINE - 5]]
54+
// YAML-NEXT: Filename: '{{.*}}'
55+
// YAML-NEXT: Params:
56+
// YAML-NEXT: - Type:
57+
// YAML-NEXT: Name: 'T'
58+
// YAML-NEXT: QualName: 'T'
59+
// YAML-NEXT: Name: 'x'
60+
// YAML-NEXT: ReturnType:
61+
// YAML-NEXT: Type:
62+
// YAML-NEXT: Name: 'void'
63+
// YAML-NEXT: QualName: 'void'
64+
// YAML-NEXT: Template:
65+
// YAML-NEXT: Params:
66+
// YAML-NEXT: - Contents: 'typename T'
67+
// YAML-NEXT: - Contents: 'int U = 1'
68+
69+
// MD: ### function
70+
// MD: *void function(T x)*
71+
// MD: *Defined at {{.*}}templates.cpp#[[# @LINE - 23]]*
72+
1273
template<>
1374
void function<bool, 0>(bool x) {}
1475

15-
template<class... T>
16-
void ParamPackFunction(T... args);
76+
// YAML-NEXT: - USR: '{{([0-9A-F]{40})}}'
77+
// YAML-NEXT: Name: 'function'
78+
// YAML-NEXT: DefLocation:
79+
// YAML-NEXT: LineNumber: [[# @LINE - 6]]
80+
// YAML-NEXT: Filename: '{{.*}}'
81+
// YAML-NEXT: Params:
82+
// YAML-NEXT: - Type:
83+
// YAML-NEXT: Name: '_Bool'
84+
// YAML-NEXT: QualName: '_Bool'
85+
// YAML-NEXT: Name: 'x'
86+
// YAML-NEXT: ReturnType:
87+
// YAML-NEXT: Type:
88+
// YAML-NEXT: Name: 'void'
89+
// YAML-NEXT: QualName: 'void'
90+
// YAML-NEXT: Template:
91+
// YAML-NEXT: Specialization:
92+
// YAML-NEXT: SpecializationOf: '{{([0-9A-F]{40})}}'
93+
// YAML-NEXT: Params:
94+
// YAML-NEXT: - Contents: 'bool'
95+
// YAML-NEXT: - Contents: '0'
96+
97+
// MD: ### function
98+
// MD: *void function(_Bool x)*
99+
// MD: *Defined at {{.*}}templates.cpp#[[# @LINE - 26]]*
100+
101+
/// A Tuple type
102+
///
103+
/// Does nothing.
104+
template<typename ...Tys>
105+
struct tuple{};
106+
107+
/// A function with a tuple parameter
108+
///
109+
/// \param t The input to func_with_tuple_param
110+
tuple<int,int,bool> func_with_tuple_param(tuple<int,int,bool> t){ return t;}
111+
112+
// YAML-NEXT: - USR: '{{([0-9A-F]{40})}}'
113+
// YAML-NEXT: Name: 'func_with_tuple_param'
114+
// YAML-NEXT: Description:
115+
// YAML-NEXT: - Kind: 'FullComment'
116+
// YAML-NEXT: Children:
117+
// YAML-NEXT: - Kind: 'ParagraphComment'
118+
// YAML-NEXT: Children:
119+
// YAML-NEXT: - Kind: 'TextComment'
120+
// YAML-NEXT: Text: ' A function with a tuple parameter'
121+
// YAML-NEXT: - Kind: 'ParagraphComment'
122+
// YAML-NEXT: Children:
123+
// YAML-NEXT: - Kind: 'TextComment'
124+
// YAML-NEXT: - Kind: 'ParamCommandComment'
125+
// YAML-NEXT: Direction: '[in]'
126+
// YAML-NEXT: ParamName: 't'
127+
// YAML-NEXT: Children:
128+
// YAML-NEXT: - Kind: 'ParagraphComment'
129+
// YAML-NEXT: Children:
130+
// YAML-NEXT: - Kind: 'TextComment'
131+
// YAML-NEXT: Text: ' The input to func_with_tuple_param'
132+
// YAML-NEXT: DefLocation:
133+
// YAML-NEXT: LineNumber: [[# @LINE - 23]]
134+
// YAML-NEXT: Filename:
135+
// YAML-NEXT: Params:
136+
// YAML-NEXT: - Type:
137+
// YAML-NEXT: Type: Record
138+
// YAML-NEXT: Name: 'tuple'
139+
// YAML-NEXT: QualName: 'tuple<int, int, _Bool>'
140+
// YAML-NEXT: USR: '{{([0-9A-F]{40})}}'
141+
// YAML-NEXT: Path: 'GlobalNamespace'
142+
// YAML-NEXT: Name: 't'
143+
// YAML-NEXT: ReturnType:
144+
// YAML-NEXT: Type:
145+
// YAML-NEXT: Type: Record
146+
// YAML-NEXT: Name: 'tuple'
147+
// YAML-NEXT: QualName: 'tuple<int, int, _Bool>'
148+
// YAML-NEXT: USR: '{{([0-9A-F]{40})}}'
149+
// YAML-NEXT: Path: 'GlobalNamespace'
150+
// YAML-NEXT: ...
17151

18-
// CHECK: ---
19-
// CHECK-NEXT: USR: '{{([0-9A-F]{40})}}'
20-
// CHECK-NEXT: ChildFunctions:
21-
// CHECK-NEXT: - USR: '{{([0-9A-F]{40})}}'
22-
// CHECK-NEXT: Name: 'ParamPackFunction'
23-
// CHECK-NEXT: Location:
24-
// CHECK-NEXT: - LineNumber: 16
25-
// CHECK-NEXT: Filename: '{{.*}}'
26-
// CHECK-NEXT: Params:
27-
// CHECK-NEXT: - Type:
28-
// CHECK-NEXT: Name: 'T...'
29-
// CHECK-NEXT: QualName: 'T...'
30-
// CHECK-NEXT: Name: 'args'
31-
// CHECK-NEXT: ReturnType:
32-
// CHECK-NEXT: Type:
33-
// CHECK-NEXT: Name: 'void'
34-
// CHECK-NEXT: QualName: 'void'
35-
// CHECK-NEXT: Template:
36-
// CHECK-NEXT: Params:
37-
// CHECK-NEXT: - Contents: 'class... T'
38-
// CHECK-NEXT: - USR: '{{([0-9A-F]{40})}}'
39-
// CHECK-NEXT: Name: 'function'
40-
// CHECK-NEXT: DefLocation:
41-
// CHECK-NEXT: LineNumber: 10
42-
// CHECK-NEXT: Filename: '{{.*}}'
43-
// CHECK-NEXT: Params:
44-
// CHECK-NEXT: - Type:
45-
// CHECK-NEXT: Name: 'T'
46-
// CHECK-NEXT: QualName: 'T'
47-
// CHECK-NEXT: Name: 'x'
48-
// CHECK-NEXT: ReturnType:
49-
// CHECK-NEXT: Type:
50-
// CHECK-NEXT: Name: 'void'
51-
// CHECK-NEXT: QualName: 'void'
52-
// CHECK-NEXT: Template:
53-
// CHECK-NEXT: Params:
54-
// CHECK-NEXT: - Contents: 'typename T'
55-
// CHECK-NEXT: - Contents: 'int U = 1'
56-
// CHECK-NEXT: - USR: '{{([0-9A-F]{40})}}'
57-
// CHECK-NEXT: Name: 'function'
58-
// CHECK-NEXT: DefLocation:
59-
// CHECK-NEXT: LineNumber: 12
60-
// CHECK-NEXT: Filename: '{{.*}}'
61-
// CHECK-NEXT: Params:
62-
// CHECK-NEXT: - Type:
63-
// CHECK-NEXT: Name: '_Bool'
64-
// CHECK-NEXT: QualName: '_Bool'
65-
// CHECK-NEXT: Name: 'x'
66-
// CHECK-NEXT: ReturnType:
67-
// CHECK-NEXT: Type:
68-
// CHECK-NEXT: Name: 'void'
69-
// CHECK-NEXT: QualName: 'void'
70-
// CHECK-NEXT: Template:
71-
// CHECK-NEXT: Specialization:
72-
// CHECK-NEXT: SpecializationOf: '{{([0-9A-F]{40})}}'
73-
// CHECK-NEXT: Params:
74-
// CHECK-NEXT: - Contents: 'bool'
75-
// CHECK-NEXT: - Contents: '0'
76-
// CHECK-NEXT: ...
152+
// MD: ### func_with_tuple_param
153+
// MD: *tuple func_with_tuple_param(tuple t)*
154+
// MD: *Defined at {{.*}}templates.cpp#[[# @LINE - 44]]*
155+
// MD: A function with a tuple parameter
156+
// MD: **t** The input to func_with_tuple_param

0 commit comments

Comments
 (0)