void ide::getDocumentationCommentAsDoxygen(const DocComment *DC, raw_ostream &OS) { CommentToDoxygenConverter Converter(OS); auto Brief = DC->getBrief(); if (Brief.hasValue()) { SmallString<256> BriefStr; llvm::raw_svector_ostream OS(BriefStr); swift::markup::printInlinesUnder(Brief.getValue(), OS); Converter.print(OS.str()); Converter.printNewline(); Converter.printNewline(); } for (const auto *N : DC->getBodyNodes()) { if (const auto *P = dyn_cast<Paragraph>(N)) { Converter.printASTNode(P); Converter.printNewline(); Converter.printNewline(); continue; } Converter.printASTNode(N); Converter.printNewline(); } for (const auto PF : DC->getParamFields()) { Converter.printParamField(PF); Converter.printNewline(); } auto TF = DC->getThrowsField(); if (TF.hasValue()) { Converter.printThrowField(TF.getValue()); Converter.printNewline(); } auto RF = DC->getReturnsField(); if (RF.hasValue()) { Converter.printReturnField(RF.getValue()); Converter.printNewline(); } if (Converter.PendingNewlines != 0) OS << "\n"; }