Skip to content

Commit 388fffc

Browse files
johnfairhnkcsgexi
authored andcommitted
[SourceKit] XML-escape swift declarations from clang modules
1 parent 932a480 commit 388fffc

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

lib/IDE/CommentConversion.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -408,14 +408,15 @@ static void replaceObjcDeclarationsWithSwiftOnes(const Decl *D,
408408
std::string S;
409409
llvm::raw_string_ostream SS(S);
410410
D->print(SS, Options);
411-
std::string Signature = SS.str();
412411
auto OI = Doc.find(Open);
413412
auto CI = Doc.find(Close);
414-
if (StringRef::npos != OI && StringRef::npos != CI && CI > OI)
415-
OS << Doc.substr(0, OI) << Open << Signature << Close <<
416-
Doc.substr(CI + Close.size());
417-
else
413+
if (StringRef::npos != OI && StringRef::npos != CI && CI > OI) {
414+
OS << Doc.substr(0, OI) << Open;
415+
appendWithXMLEscaping(OS, SS.str());
416+
OS << Close << Doc.substr(CI + Close.size());
417+
} else {
418418
OS << Doc;
419+
}
419420
}
420421

421422
static LineList getLineListFromComment(SourceManager &SourceMgr,

test/SourceKit/DocSupport/doc_clang_module.swift.response

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5712,7 +5712,7 @@ var FooSubUnnamedEnumeratorA1: Int { get }
57125712
key.kind: source.lang.swift.decl.function.free,
57135713
key.name: "fooFunc1(_:)",
57145714
key.usr: "c:@F@fooFunc1",
5715-
key.doc.full_as_xml: "<Function file=Foo.h line=\"66\" column=\"5\"><Name>fooFunc1</Name><USR>c:@F@fooFunc1</USR><Declaration>func fooFunc1(_ a: Int32) -> Int32</Declaration><Abstract><Para> Aaa. fooFunc1. Bbb.</Para></Abstract></Function>",
5715+
key.doc.full_as_xml: "<Function file=Foo.h line=\"66\" column=\"5\"><Name>fooFunc1</Name><USR>c:@F@fooFunc1</USR><Declaration>func fooFunc1(_ a: Int32) -&gt; Int32</Declaration><Abstract><Para> Aaa. fooFunc1. Bbb.</Para></Abstract></Function>",
57165716
key.offset: 3282,
57175717
key.length: 34,
57185718
key.fully_annotated_decl: "<decl.function.free><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>fooFunc1</decl.name>(<decl.var.parameter><decl.var.parameter.argument_label>_</decl.var.parameter.argument_label> <decl.var.parameter.name>a</decl.var.parameter.name>: <decl.var.parameter.type><ref.struct usr=\"s:s5Int32V\">Int32</ref.struct></decl.var.parameter.type></decl.var.parameter>) -&gt; <decl.function.returntype><ref.struct usr=\"s:s5Int32V\">Int32</ref.struct></decl.function.returntype></decl.function.free>",
@@ -5879,7 +5879,7 @@ var FooSubUnnamedEnumeratorA1: Int { get }
58795879
key.kind: source.lang.swift.decl.function.free,
58805880
key.name: "redeclaredInMultipleModulesFunc1(_:)",
58815881
key.usr: "c:@F@redeclaredInMultipleModulesFunc1",
5882-
key.doc.full_as_xml: "<Function file=Foo.h line=\"118\" column=\"5\"><Name>redeclaredInMultipleModulesFunc1</Name><USR>c:@F@redeclaredInMultipleModulesFunc1</USR><Declaration>func redeclaredInMultipleModulesFunc1(_ a: Int32) -> Int32</Declaration><Abstract><Para> Aaa. redeclaredInMultipleModulesFunc1. Bbb.</Para></Abstract></Function>",
5882+
key.doc.full_as_xml: "<Function file=Foo.h line=\"118\" column=\"5\"><Name>redeclaredInMultipleModulesFunc1</Name><USR>c:@F@redeclaredInMultipleModulesFunc1</USR><Declaration>func redeclaredInMultipleModulesFunc1(_ a: Int32) -&gt; Int32</Declaration><Abstract><Para> Aaa. redeclaredInMultipleModulesFunc1. Bbb.</Para></Abstract></Function>",
58835883
key.offset: 3773,
58845884
key.length: 58,
58855885
key.fully_annotated_decl: "<decl.function.free><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>redeclaredInMultipleModulesFunc1</decl.name>(<decl.var.parameter><decl.var.parameter.argument_label>_</decl.var.parameter.argument_label> <decl.var.parameter.name>a</decl.var.parameter.name>: <decl.var.parameter.type><ref.struct usr=\"s:s5Int32V\">Int32</ref.struct></decl.var.parameter.type></decl.var.parameter>) -&gt; <decl.function.returntype><ref.struct usr=\"s:s5Int32V\">Int32</ref.struct></decl.function.returntype></decl.function.free>",

0 commit comments

Comments
 (0)