12
12
#include " llvm/Support/FileSystem.h"
13
13
#include " llvm/Support/FormatVariadic.h"
14
14
#include " llvm/Support/Path.h"
15
+ #include " llvm/Support/raw_ostream.h"
15
16
#include < string>
16
17
17
18
using namespace llvm ;
@@ -67,6 +68,13 @@ static void writeFileDefinition(const ClangDocContext &CDCtx, const Location &L,
67
68
OS << " \n\n " ;
68
69
}
69
70
71
+ static void createFileDefinition (llvm::raw_ostream &OS,
72
+ const ClangDocContext &CDCtx,
73
+ const std::optional<Location> &DefLoc) {
74
+ if (DefLoc)
75
+ writeFileDefinition (CDCtx, *DefLoc, OS);
76
+ }
77
+
70
78
static void writeDescription (const CommentInfo &I, raw_ostream &OS) {
71
79
if (I.Kind == " FullComment" ) {
72
80
for (const auto &Child : I.Children )
@@ -143,8 +151,8 @@ static void genMarkdown(const ClangDocContext &CDCtx, const EnumInfo &I,
143
151
for (const auto &N : I.Members )
144
152
Members << " | " << N.Name << " |\n " ;
145
153
writeLine (Members.str (), OS);
146
- if (I. DefLoc )
147
- writeFileDefinition ( CDCtx, * I.DefLoc , OS );
154
+
155
+ createFileDefinition (OS, CDCtx, I.DefLoc );
148
156
149
157
for (const auto &C : I.Description )
150
158
writeDescription (C, OS);
@@ -171,8 +179,8 @@ static void genMarkdown(const ClangDocContext &CDCtx, const FunctionInfo &I,
171
179
writeLine (genItalic (I.ReturnType .Type .QualName + " " + I.Name + " (" +
172
180
Stream.str () + " )" ),
173
181
OS);
174
- if (I. DefLoc )
175
- writeFileDefinition ( CDCtx, * I.DefLoc , OS );
182
+
183
+ createFileDefinition (OS, CDCtx, I.DefLoc );
176
184
177
185
for (const auto &C : I.Description )
178
186
writeDescription (C, OS);
@@ -231,8 +239,8 @@ static void genMarkdown(const ClangDocContext &CDCtx, const NamespaceInfo &I,
231
239
static void genMarkdown (const ClangDocContext &CDCtx, const RecordInfo &I,
232
240
llvm::raw_ostream &OS) {
233
241
writeHeader (getTagType (I.TagType ) + " " + I.Name , 1 , OS);
234
- if (I. DefLoc )
235
- writeFileDefinition ( CDCtx, * I.DefLoc , OS );
242
+
243
+ createFileDefinition (OS, CDCtx, I.DefLoc );
236
244
237
245
if (!I.Description .empty ()) {
238
246
for (const auto &C : I.Description )
0 commit comments