mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[SourceKit] DocInfo: Simplify the type parameter names inside fully annotated decls.
This commit is contained in:
@@ -7240,7 +7240,7 @@ var FooSubUnnamedEnumeratorA1: Int { get }
|
||||
key.doc.full_as_xml: "<Function><Name>init(_:)</Name><USR>s:FEsPs10SetAlgebracuRd__s8Sequencewx7ElementzWd__8Iterator7Element_rFqd__x</USR><Declaration>convenience init<S : Sequence where S.Iterator.Element == Element>(_ sequence: S)</Declaration><Abstract><Para>Creates the set containing all elements of <codeVoice>sequence</codeVoice>.</Para></Abstract></Function>",
|
||||
key.offset: 3282,
|
||||
key.length: 91,
|
||||
key.fully_annotated_decl: "<decl.function.constructor><syntaxtype.keyword>convenience</syntaxtype.keyword> <syntaxtype.keyword>init</syntaxtype.keyword><<decl.generic_type_param usr=\"s:tFEsPs10SetAlgebracuRd__s8Sequencewx7ElementzWd__8Iterator7Element_rFqd__xL_1SMqd__\"><decl.generic_type_param.name>S</decl.generic_type_param.name> : <decl.generic_type_param.constraint><ref.protocol usr=\"s:Ps8Sequence\">Sequence</ref.protocol></decl.generic_type_param.constraint></decl.generic_type_param> <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement>S.Iterator.Element == Element</decl.generic_type_requirement>>(<decl.var.parameter><decl.var.parameter.argument_label>_</decl.var.parameter.argument_label> <decl.var.parameter.name>sequence</decl.var.parameter.name>: <decl.var.parameter.type>S</decl.var.parameter.type></decl.var.parameter>)</decl.function.constructor>",
|
||||
key.fully_annotated_decl: "<decl.function.constructor><syntaxtype.keyword>convenience</syntaxtype.keyword> <syntaxtype.keyword>init</syntaxtype.keyword><<decl.generic_type_param usr=\"s:tFEsPs10SetAlgebracuRd__s8Sequencewx7ElementzWd__8Iterator7Element_rFqd__xL_1SMqd__\"><decl.generic_type_param.name>S</decl.generic_type_param.name> : <decl.generic_type_param.constraint><ref.protocol usr=\"s:Ps8Sequence\">Sequence</ref.protocol></decl.generic_type_param.constraint></decl.generic_type_param> <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement>S.Iterator.Element == FooRuncingOptions</decl.generic_type_requirement>>(<decl.var.parameter><decl.var.parameter.argument_label>_</decl.var.parameter.argument_label> <decl.var.parameter.name>sequence</decl.var.parameter.name>: <decl.var.parameter.type>S</decl.var.parameter.type></decl.var.parameter>)</decl.function.constructor>",
|
||||
key.entities: [
|
||||
{
|
||||
key.kind: source.lang.swift.decl.var.local,
|
||||
@@ -7259,7 +7259,7 @@ var FooSubUnnamedEnumeratorA1: Int { get }
|
||||
key.doc.full_as_xml: "<Function><Name>init(arrayLiteral:)</Name><USR>s:FEsPs10SetAlgebracFt12arrayLiteralGSawx7Element__x</USR><Declaration>convenience init(arrayLiteral: Self.Element...)</Declaration><Abstract><Para>Creates a set containing all elements of the given <codeVoice>arrayLiteral</codeVoice>.</Para></Abstract><Discussion><Para>This initializer allows an array literal containing <codeVoice>Self.Element</codeVoice> to represent an instance of the set, wherever it is implied by the type context.</Para></Discussion></Function>",
|
||||
key.offset: 3379,
|
||||
key.length: 65,
|
||||
key.fully_annotated_decl: "<decl.function.constructor><syntaxtype.keyword>convenience</syntaxtype.keyword> <syntaxtype.keyword>init</syntaxtype.keyword>(<decl.var.parameter><decl.var.parameter.argument_label>arrayLiteral</decl.var.parameter.argument_label>: <decl.var.parameter.type><ref.generic_type_param usr=\"s:tPs10SetAlgebra4SelfMx\">Self</ref.generic_type_param>.Element</decl.var.parameter.type>...</decl.var.parameter>)</decl.function.constructor>",
|
||||
key.fully_annotated_decl: "<decl.function.constructor><syntaxtype.keyword>convenience</syntaxtype.keyword> <syntaxtype.keyword>init</syntaxtype.keyword>(<decl.var.parameter><decl.var.parameter.argument_label>arrayLiteral</decl.var.parameter.argument_label>: <decl.var.parameter.type><ref.struct usr=\"c:@E@FooRuncingOptions\">FooRuncingOptions</ref.struct></decl.var.parameter.type>...</decl.var.parameter>)</decl.function.constructor>",
|
||||
key.entities: [
|
||||
{
|
||||
key.kind: source.lang.swift.decl.var.local,
|
||||
@@ -7421,7 +7421,7 @@ var FooSubUnnamedEnumeratorA1: Int { get }
|
||||
key.doc.full_as_xml: "<Function><Name>element(_:subsumes:)</Name><USR>s:ZFEsPs10SetAlgebra7elementFTwx7Element8subsumeswxS0__Sb</USR><Declaration>static func element(a: Self.Element, subsumes b: Self.Element) -> Bool</Declaration><Abstract><Para>Returns <codeVoice>true</codeVoice> iff <codeVoice>a</codeVoice> subsumes <codeVoice>b</codeVoice>.</Para></Abstract><Discussion><List-Bullet><Item><Para>Equivalent to <codeVoice>([a] as Self).isSupersetOf([b])</codeVoice></Para></Item></List-Bullet></Discussion></Function>",
|
||||
key.offset: 3813,
|
||||
key.length: 82,
|
||||
key.fully_annotated_decl: "<decl.function.method.static><syntaxtype.keyword>static</syntaxtype.keyword> <syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>element</decl.name>(<decl.var.parameter><decl.var.parameter.name>a</decl.var.parameter.name>: <decl.var.parameter.type><ref.generic_type_param usr=\"s:tPs10SetAlgebra4SelfMx\">Self</ref.generic_type_param>.Element</decl.var.parameter.type></decl.var.parameter>, <decl.var.parameter><decl.var.parameter.argument_label>subsumes</decl.var.parameter.argument_label> <decl.var.parameter.name>b</decl.var.parameter.name>: <decl.var.parameter.type><ref.generic_type_param usr=\"s:tPs10SetAlgebra4SelfMx\">Self</ref.generic_type_param>.Element</decl.var.parameter.type></decl.var.parameter>) -> <decl.function.returntype><ref.struct usr=\"s:Sb\">Bool</ref.struct></decl.function.returntype></decl.function.method.static>",
|
||||
key.fully_annotated_decl: "<decl.function.method.static><syntaxtype.keyword>static</syntaxtype.keyword> <syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>element</decl.name>(<decl.var.parameter><decl.var.parameter.name>a</decl.var.parameter.name>: <decl.var.parameter.type><ref.struct usr=\"c:@E@FooRuncingOptions\">FooRuncingOptions</ref.struct></decl.var.parameter.type></decl.var.parameter>, <decl.var.parameter><decl.var.parameter.argument_label>subsumes</decl.var.parameter.argument_label> <decl.var.parameter.name>b</decl.var.parameter.name>: <decl.var.parameter.type><ref.struct usr=\"c:@E@FooRuncingOptions\">FooRuncingOptions</ref.struct></decl.var.parameter.type></decl.var.parameter>) -> <decl.function.returntype><ref.struct usr=\"s:Sb\">Bool</ref.struct></decl.function.returntype></decl.function.method.static>",
|
||||
key.entities: [
|
||||
{
|
||||
key.kind: source.lang.swift.decl.var.local,
|
||||
@@ -7447,7 +7447,7 @@ var FooSubUnnamedEnumeratorA1: Int { get }
|
||||
key.doc.full_as_xml: "<Function><Name>element(_:isDisjointWith:)</Name><USR>s:ZFEsPs10SetAlgebra7elementFTwx7Element14isDisjointWithwxS0__Sb</USR><Declaration>static func element(a: Self.Element, isDisjointWith b: Self.Element) -> Bool</Declaration><Abstract><Para>Returns <codeVoice>true</codeVoice> iff <codeVoice>a</codeVoice> is disjoint with <codeVoice>b</codeVoice>.</Para></Abstract><Discussion><Para>Two elements are disjoint when neither one subsumes the other.</Para><See><Para><codeVoice>Self.element(_, subsumes:_)</codeVoice></Para></See></Discussion></Function>",
|
||||
key.offset: 3901,
|
||||
key.length: 88,
|
||||
key.fully_annotated_decl: "<decl.function.method.static><syntaxtype.keyword>static</syntaxtype.keyword> <syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>element</decl.name>(<decl.var.parameter><decl.var.parameter.name>a</decl.var.parameter.name>: <decl.var.parameter.type><ref.generic_type_param usr=\"s:tPs10SetAlgebra4SelfMx\">Self</ref.generic_type_param>.Element</decl.var.parameter.type></decl.var.parameter>, <decl.var.parameter><decl.var.parameter.argument_label>isDisjointWith</decl.var.parameter.argument_label> <decl.var.parameter.name>b</decl.var.parameter.name>: <decl.var.parameter.type><ref.generic_type_param usr=\"s:tPs10SetAlgebra4SelfMx\">Self</ref.generic_type_param>.Element</decl.var.parameter.type></decl.var.parameter>) -> <decl.function.returntype><ref.struct usr=\"s:Sb\">Bool</ref.struct></decl.function.returntype></decl.function.method.static>",
|
||||
key.fully_annotated_decl: "<decl.function.method.static><syntaxtype.keyword>static</syntaxtype.keyword> <syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>element</decl.name>(<decl.var.parameter><decl.var.parameter.name>a</decl.var.parameter.name>: <decl.var.parameter.type><ref.struct usr=\"c:@E@FooRuncingOptions\">FooRuncingOptions</ref.struct></decl.var.parameter.type></decl.var.parameter>, <decl.var.parameter><decl.var.parameter.argument_label>isDisjointWith</decl.var.parameter.argument_label> <decl.var.parameter.name>b</decl.var.parameter.name>: <decl.var.parameter.type><ref.struct usr=\"c:@E@FooRuncingOptions\">FooRuncingOptions</ref.struct></decl.var.parameter.type></decl.var.parameter>) -> <decl.function.returntype><ref.struct usr=\"s:Sb\">Bool</ref.struct></decl.function.returntype></decl.function.method.static>",
|
||||
key.entities: [
|
||||
{
|
||||
key.kind: source.lang.swift.decl.var.local,
|
||||
|
||||
@@ -366,7 +366,11 @@ static bool initDocEntityInfo(const Decl *D, const Decl *SynthesizedTarget,
|
||||
|
||||
if (auto *VD = dyn_cast<ValueDecl>(D)) {
|
||||
llvm::raw_svector_ostream OS(Info.FullyAnnotatedDecl);
|
||||
SwiftLangSupport::printFullyAnnotatedDeclaration(VD, Type(), OS);
|
||||
if (SynthesizedTarget)
|
||||
SwiftLangSupport::printFullyAnnotatedSynthesizedDeclaration(VD,
|
||||
(NominalTypeDecl*)SynthesizedTarget, OS);
|
||||
else
|
||||
SwiftLangSupport::printFullyAnnotatedDeclaration(VD, Type(), OS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -269,9 +269,10 @@ public:
|
||||
swift::Type BaseTy,
|
||||
llvm::raw_ostream &OS);
|
||||
|
||||
static void printFullyAnnotatedSynthesizedExtension(swift::ExtensionDecl * Extension,
|
||||
swift::NominalTypeDecl *Target,
|
||||
llvm::raw_ostream &OS);
|
||||
static void printFullyAnnotatedSynthesizedDeclaration(
|
||||
const swift::ValueDecl *VD,
|
||||
swift::NominalTypeDecl *Target,
|
||||
llvm::raw_ostream &OS);
|
||||
|
||||
/// Tries to resolve the path to the real file-system path. If it fails it
|
||||
/// returns the original path;
|
||||
|
||||
@@ -434,16 +434,22 @@ void SwiftLangSupport::printFullyAnnotatedDeclaration(const ValueDecl *VD,
|
||||
VD->print(Printer, PO);
|
||||
}
|
||||
|
||||
|
||||
void SwiftLangSupport::
|
||||
printFullyAnnotatedSynthesizedExtension(swift::ExtensionDecl * Extension,
|
||||
swift::NominalTypeDecl *Target,
|
||||
llvm::raw_ostream &OS) {
|
||||
printFullyAnnotatedSynthesizedDeclaration(const swift::ValueDecl *VD,
|
||||
swift::NominalTypeDecl *Target,
|
||||
llvm::raw_ostream &OS) {
|
||||
static llvm::SmallDenseMap<swift::ValueDecl*,
|
||||
std::unique_ptr<swift::SynthesizedExtensionAnalyzer>> TargetToAnalyzerMap;
|
||||
FullyAnnotatedDeclarationPrinter Printer(OS);
|
||||
PrintOptions PO = PrintOptions::printQuickHelpDeclaration();
|
||||
SynthesizedExtensionAnalyzer Analyzer(Target, PO);
|
||||
PO.initArchetypeTransformerForSynthesizedExtensions(Target, &Analyzer);
|
||||
Extension->print(Printer, PO);
|
||||
if (TargetToAnalyzerMap.count(Target) == 0) {
|
||||
std::unique_ptr<SynthesizedExtensionAnalyzer> Analyzer(
|
||||
new SynthesizedExtensionAnalyzer(Target, PO));
|
||||
TargetToAnalyzerMap.insert({Target, std::move(Analyzer)});
|
||||
}
|
||||
auto *Analyzer = TargetToAnalyzerMap.find(Target)->getSecond().get();
|
||||
PO.initArchetypeTransformerForSynthesizedExtensions(Target, Analyzer);
|
||||
VD->print(Printer, PO);
|
||||
}
|
||||
|
||||
template <typename FnTy>
|
||||
|
||||
Reference in New Issue
Block a user