mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Test] Improve signature help tests
This commit is contained in:
@@ -2,8 +2,6 @@
|
||||
|
||||
func apply<Value, Result>(value: Value, body: (Value) -> Result) -> Result {
|
||||
return body(#^CLOSURE_PARAM^#)
|
||||
// CLOSURE_PARAM: Begin signatures, 1 items
|
||||
// CLOSURE_PARAM-DAG: Signature[Active]: body(<param active>Value</param>) -> Result
|
||||
}
|
||||
|
||||
// CLOSURE_PARAM: Begin signatures, 1 items
|
||||
// CLOSURE_PARAM-NEXT: Signature[Active]: body(<param active>Value</param>) -> Result
|
||||
// CLOSURE_PARAM-NEXT: End signatures
|
||||
|
||||
@@ -42,39 +42,33 @@ func topLevelCurried(x: Int) -> (Double) -> (String) -> Void {
|
||||
|
||||
func testCurryTopLevel() {
|
||||
topLevelCurried(x: 1)(#^CURRY_TOPLEVEL^#)
|
||||
// CURRY_TOPLEVEL: Begin signatures, 1 items
|
||||
// CURRY_TOPLEVEL-DAG: Signature[Active]: (<param active>Double</param>) -> (String) -> Void
|
||||
}
|
||||
|
||||
func testCurryMemberPartial() {
|
||||
Adder.add(#^CURRY_MEMBER_PARTIAL^#)
|
||||
// CURRY_MEMBER_PARTIAL: Begin signatures, 8 items
|
||||
// CURRY_MEMBER_PARTIAL-DAG: Signature[Active]: add(<param name="self" active>_ self: Adder</param>) -> (Int, Int) -> Int
|
||||
// CURRY_MEMBER_PARTIAL-DAG: Signature: add(<param name="self" active>_ self: Adder</param>) -> (inout Int) -> ()
|
||||
// CURRY_MEMBER_PARTIAL-DAG: Signature: add(<param name="self" active>_ self: Adder</param>) -> (AdditiveArithmetic, AdditiveArithmetic) -> AdditiveArithmetic
|
||||
// CURRY_MEMBER_PARTIAL-DAG: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Double?, Float, Int) -> Double
|
||||
// CURRY_MEMBER_PARTIAL-DAG: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Double, Float, Int) -> Double
|
||||
// CURRY_MEMBER_PARTIAL-DAG: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Double...) -> Double
|
||||
// CURRY_MEMBER_PARTIAL-DAG: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Int, Int, (Int, Int) throws -> Int) throws -> Int?
|
||||
// CURRY_MEMBER_PARTIAL-DAG: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Int) -> (Int) -> Int
|
||||
}
|
||||
|
||||
func testCurryMemberFull() {
|
||||
let adder = Adder()
|
||||
Adder.add(adder)(#^CURRY_MEMBER_FULL^#)
|
||||
// CURRY_MEMBER_FULL: Begin signatures, 8 items
|
||||
// CURRY_MEMBER_FULL-DAG: Signature[Active]: (<param name="x" active>_ x: Int</param>, <param name="y">to: Int</param>) -> Int
|
||||
// CURRY_MEMBER_FULL-DAG: Signature: (<param name="x" active>oneTo: inout Int</param>)
|
||||
// CURRY_MEMBER_FULL-DAG: Signature: (<param name="x" active>_ x: AdditiveArithmetic</param>, <param name="y">to: AdditiveArithmetic</param>) -> AdditiveArithmetic
|
||||
// CURRY_MEMBER_FULL-DAG: Signature: (<param name="first" active>first: Double!</param>, <param name="second">second: Float</param>, <param name="third">third: Int</param>) -> Double
|
||||
// CURRY_MEMBER_FULL-DAG: Signature: (<param name="param1" active>arg1: Double</param>, <param name="arg2">arg2: Float</param>, <param name="param3">arg3: Int</param>) -> Double
|
||||
// CURRY_MEMBER_FULL-DAG: Signature: (<param name="numbers" active>numbers: Double...</param>) -> Double
|
||||
// CURRY_MEMBER_FULL-DAG: Signature: (<param name="x" active>x: Int</param>, <param name="y">y: Int</param>, <param name="adder">with: (Int, Int) throws -> Int</param>) throws -> Int!
|
||||
// CURRY_MEMBER_FULL-DAG: Signature: (<param name="x" active>x: Int</param>) -> (Int) -> Int
|
||||
}
|
||||
|
||||
// CURRY_TOPLEVEL: Begin signatures, 1 items
|
||||
// CURRY_TOPLEVEL-NEXT: Signature[Active]: (<param active>Double</param>) -> (String) -> Void
|
||||
// CURRY_TOPLEVEL-NEXT: End signatures
|
||||
|
||||
// CURRY_MEMBER_PARTIAL: Begin signatures, 8 items
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: Signature[Active]: add(<param name="self" active>_ self: Adder</param>) -> (Int, Int) -> Int
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: Signature: add(<param name="self" active>_ self: Adder</param>) -> (inout Int) -> ()
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: Signature: add(<param name="self" active>_ self: Adder</param>) -> (AdditiveArithmetic, AdditiveArithmetic) -> AdditiveArithmetic
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Double?, Float, Int) -> Double
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Double, Float, Int) -> Double
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Double...) -> Double
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Int, Int, (Int, Int) throws -> Int) throws -> Int?
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: Signature: add(<param name="self" active>_ self: Adder</param>) -> (Int) -> (Int) -> Int
|
||||
// CURRY_MEMBER_PARTIAL-NEXT: End signatures
|
||||
|
||||
// CURRY_MEMBER_FULL: Begin signatures, 8 items
|
||||
// CURRY_MEMBER_FULL-NEXT: Signature[Active]: (<param name="x" active>_ x: Int</param>, <param name="y">to: Int</param>) -> Int
|
||||
// CURRY_MEMBER_FULL-NEXT: Signature: (<param name="x" active>oneTo: inout Int</param>)
|
||||
// CURRY_MEMBER_FULL-NEXT: Signature: (<param name="x" active>_ x: AdditiveArithmetic</param>, <param name="y">to: AdditiveArithmetic</param>) -> AdditiveArithmetic
|
||||
// CURRY_MEMBER_FULL-NEXT: Signature: (<param name="first" active>first: Double!</param>, <param name="second">second: Float</param>, <param name="third">third: Int</param>) -> Double
|
||||
// CURRY_MEMBER_FULL-NEXT: Signature: (<param name="param1" active>arg1: Double</param>, <param name="arg2">arg2: Float</param>, <param name="param3">arg3: Int</param>) -> Double
|
||||
// CURRY_MEMBER_FULL-NEXT: Signature: (<param name="numbers" active>numbers: Double...</param>) -> Double
|
||||
// CURRY_MEMBER_FULL-NEXT: Signature: (<param name="x" active>x: Int</param>, <param name="y">y: Int</param>, <param name="adder">with: (Int, Int) throws -> Int</param>) throws -> Int!
|
||||
// CURRY_MEMBER_FULL-NEXT: Signature: (<param name="x" active>x: Int</param>) -> (Int) -> Int
|
||||
// CURRY_MEMBER_FULL-NEXT: End signatures
|
||||
|
||||
@@ -23,14 +23,12 @@ func add(x: Int = importantValue) {}
|
||||
func add(x: Int, line: UInt = #line, file: StaticString = #file) {}
|
||||
|
||||
add(#^DEFAULT_ARGS^#)
|
||||
|
||||
// DEFAULT_ARGS: Begin signatures, 8 items
|
||||
// DEFAULT_ARGS-NEXT: Signature[Active]: add(<param name="x" active>_ x: Int = 10</param>, <param name="y">to: Int</param>) -> Int
|
||||
// DEFAULT_ARGS-NEXT: Signature: add(<param name="x" active>oneTo: inout Int</param>)
|
||||
// DEFAULT_ARGS-NEXT: Signature: add(<param name="x" active>_ x: Int</param>, <param name="y">to: Int? = nil</param>) -> String
|
||||
// DEFAULT_ARGS-NEXT: Signature: add(<param name="first" active>first: Double!</param>, <param name="second">second: Float = .pi</param>, <param name="third">third: Int</param>) -> Double
|
||||
// DEFAULT_ARGS-NEXT: Signature: add(<param name="s" active>s: S = S(a: false)</param>) -> Double
|
||||
// DEFAULT_ARGS-NEXT: Signature: add(<param name="x" active>x: Int</param>, <param name="y">y: Int</param>, <param name="adder">with: (Int, Int) -> Int = { $0 + $1 }</param>) -> Int
|
||||
// DEFAULT_ARGS-NEXT: Signature: add(<param name="x" active>x: Int = importantValue</param>)
|
||||
// DEFAULT_ARGS-NEXT: Signature: add(<param name="x" active>x: Int</param>, <param name="line">line: UInt = #line</param>, <param name="file">file: StaticString = #file</param>)
|
||||
// DEFAULT_ARGS-NEXT: End signatures
|
||||
// DEFAULT_ARGS: Begin signatures, 8 items
|
||||
// DEFAULT_ARGS-DAG: Signature[Active]: add(<param name="x" active>_ x: Int = 10</param>, <param name="y">to: Int</param>) -> Int
|
||||
// DEFAULT_ARGS-DAG: Signature: add(<param name="x" active>oneTo: inout Int</param>)
|
||||
// DEFAULT_ARGS-DAG: Signature: add(<param name="x" active>_ x: Int</param>, <param name="y">to: Int? = nil</param>) -> String
|
||||
// DEFAULT_ARGS-DAG: Signature: add(<param name="first" active>first: Double!</param>, <param name="second">second: Float = .pi</param>, <param name="third">third: Int</param>) -> Double
|
||||
// DEFAULT_ARGS-DAG: Signature: add(<param name="s" active>s: S = S(a: false)</param>) -> Double
|
||||
// DEFAULT_ARGS-DAG: Signature: add(<param name="x" active>x: Int</param>, <param name="y">y: Int</param>, <param name="adder">with: (Int, Int) -> Int = { $0 + $1 }</param>) -> Int
|
||||
// DEFAULT_ARGS-DAG: Signature: add(<param name="x" active>x: Int = importantValue</param>)
|
||||
// DEFAULT_ARGS-DAG: Signature: add(<param name="x" active>x: Int</param>, <param name="line">line: UInt = #line</param>, <param name="file">file: StaticString = #file</param>)
|
||||
|
||||
@@ -17,7 +17,5 @@ func add(_ x: Int, to y: Int) -> Int {
|
||||
}
|
||||
|
||||
add(#^DOC^#)
|
||||
|
||||
// DOC: Begin signatures, 1 items
|
||||
// DOC-NEXT: Signature[Active]: add(<param name="x" active>_ x: Int</param>, <param name="y">to: Int</param>) -> Int; Documentation=Adds two integers.\n\n- Parameters:\n - x: The first integer to add.\n - y: The second integer to add.\n\nUsage:\n```swift\nadd(1, to: 2) // 3\n```\n\n- Returns: The sum of the two integers.
|
||||
// DOC-NEXT: End signatures
|
||||
// DOC: Begin signatures, 1 items
|
||||
// DOC-DAG: Signature[Active]: add(<param name="x" active>_ x: Int</param>, <param name="y">to: Int</param>) -> Int; Documentation=Adds two integers.\n\n- Parameters:\n - x: The first integer to add.\n - y: The second integer to add.\n\nUsage:\n```swift\nadd(1, to: 2) // 3\n```\n\n- Returns: The sum of the two integers.
|
||||
|
||||
@@ -8,16 +8,12 @@ enum Barcode {
|
||||
|
||||
func testLabeled() {
|
||||
Barcode.upc(#^LABELLED^#, manufacturer: 85909, product: 51226, check: 3)
|
||||
// LABELLED: Begin signatures, 1 items
|
||||
// LABELLED-DAG: Signature[Active]: upc(<param name="numberSystem" active>numberSystem: Int</param>, <param name="manufacturer">manufacturer: Int</param>, <param name="product">product: Int</param>, <param name="check">check: Int</param>) -> Barcode
|
||||
}
|
||||
|
||||
func testUnlabled() {
|
||||
Barcode.qrCode(#^UNLABELLED^#)
|
||||
// UNLABELLED: Begin signatures, 1 items
|
||||
// UNLABELLED-DAG: Signature[Active]: qrCode(<param active>String</param>) -> Barcode
|
||||
}
|
||||
|
||||
// LABELLED: Begin signatures, 1 items
|
||||
// LABELLED-NEXT: Signature[Active]: upc(<param name="numberSystem" active>numberSystem: Int</param>, <param name="manufacturer">manufacturer: Int</param>, <param name="product">product: Int</param>, <param name="check">check: Int</param>) -> Barcode
|
||||
// LABELLED-NEXT: End signatures
|
||||
|
||||
// UNLABELLED: Begin signatures, 1 items
|
||||
// UNLABELLED-NEXT: Signature[Active]: qrCode(<param active>String</param>) -> Barcode
|
||||
// UNLABELLED-NEXT: End signatures
|
||||
|
||||
@@ -5,7 +5,5 @@ struct Person {
|
||||
}
|
||||
|
||||
Person(name: "John", age: #^INIT^#)
|
||||
|
||||
// INIT: Begin signatures, 1 items
|
||||
// INIT-NEXT: Signature[Active]: init(<param name="name">name: String</param>, <param name="age" active>age: Int</param>, <param name="job">profession: String</param>)
|
||||
// INIT-NEXT: End signatures
|
||||
// INIT: Begin signatures, 1 items
|
||||
// INIT-DAG: Signature[Active]: init(<param name="name">name: String</param>, <param name="age" active>age: Int</param>, <param name="job">profession: String</param>)
|
||||
|
||||
@@ -5,9 +5,7 @@ struct Observable {
|
||||
|
||||
func notify() async throws {
|
||||
_ = try await observer("EVENT", #^MEMBER_CLOSURE^#, [:])
|
||||
// MEMBER_CLOSURE: Begin signatures, 1 items
|
||||
// MEMBER_CLOSURE-DAG: Signature[Active]: observer(<param>String</param>, <param active>Int?</param>, <param>[AnyHashable : [Double?]]</param>) async throws -> [Observable?]
|
||||
}
|
||||
}
|
||||
|
||||
// MEMBER_CLOSURE: Begin signatures, 1 items
|
||||
// MEMBER_CLOSURE-NEXT: Signature[Active]: observer(<param>String</param>, <param active>Int?</param>, <param>[AnyHashable : [Double?]]</param>) async throws -> [Observable?]
|
||||
// MEMBER_CLOSURE-NEXT: End signatures
|
||||
|
||||
@@ -36,14 +36,12 @@ struct Adder {
|
||||
|
||||
let adder = Adder()
|
||||
adder.add(#^MEMBER_FUNC^#)
|
||||
|
||||
// MEMBER_FUNC: Begin signatures, 8 items
|
||||
// MEMBER_FUNC-NEXT: Signature[Active]: add(<param name="x" active>_ x: Int</param>, <param name="y">to: Int</param>) -> Int
|
||||
// MEMBER_FUNC-NEXT: Signature: add(<param name="x" active>oneTo: inout Int</param>)
|
||||
// MEMBER_FUNC-NEXT: Signature: add(<param name="x" active>_ x: AdditiveArithmetic</param>, <param name="y">to: AdditiveArithmetic</param>) -> AdditiveArithmetic
|
||||
// MEMBER_FUNC-NEXT: Signature: add(<param name="first" active>first: Double!</param>, <param name="second">second: Float</param>, <param name="third">third: Int</param>) -> Double
|
||||
// MEMBER_FUNC-NEXT: Signature: add(<param name="param1" active>arg1: Double</param>, <param name="arg2">arg2: Float</param>, <param name="param3">arg3: Int</param>) -> Double
|
||||
// MEMBER_FUNC-NEXT: Signature: add(<param name="numbers" active>numbers: Double...</param>) -> Double
|
||||
// MEMBER_FUNC-NEXT: Signature: add(<param name="x" active>x: Int</param>, <param name="y">y: Int</param>, <param name="adder">with: (Int, Int) -> Int</param>) -> Int
|
||||
// MEMBER_FUNC-NEXT: Signature: add(<param name="x" active>x: Int</param>) -> (Int) -> Int
|
||||
// MEMBER_FUNC-NEXT: End signatures
|
||||
// MEMBER_FUNC: Begin signatures, 8 items
|
||||
// MEMBER_FUNC-DAG: Signature[Active]: add(<param name="x" active>_ x: Int</param>, <param name="y">to: Int</param>) -> Int
|
||||
// MEMBER_FUNC-DAG: Signature: add(<param name="x" active>oneTo: inout Int</param>)
|
||||
// MEMBER_FUNC-DAG: Signature: add(<param name="x" active>_ x: AdditiveArithmetic</param>, <param name="y">to: AdditiveArithmetic</param>) -> AdditiveArithmetic
|
||||
// MEMBER_FUNC-DAG: Signature: add(<param name="first" active>first: Double!</param>, <param name="second">second: Float</param>, <param name="third">third: Int</param>) -> Double
|
||||
// MEMBER_FUNC-DAG: Signature: add(<param name="param1" active>arg1: Double</param>, <param name="arg2">arg2: Float</param>, <param name="param3">arg3: Int</param>) -> Double
|
||||
// MEMBER_FUNC-DAG: Signature: add(<param name="numbers" active>numbers: Double...</param>) -> Double
|
||||
// MEMBER_FUNC-DAG: Signature: add(<param name="x" active>x: Int</param>, <param name="y">y: Int</param>, <param name="adder">with: (Int, Int) -> Int</param>) -> Int
|
||||
// MEMBER_FUNC-DAG: Signature: add(<param name="x" active>x: Int</param>) -> (Int) -> Int
|
||||
|
||||
@@ -8,7 +8,5 @@ struct Vector<Value> {
|
||||
|
||||
let vec = Vector(elements: [1.0, 2.1, 3.4])
|
||||
vec.dot(with: #^MEMBER_GENERIC^#)
|
||||
|
||||
// MEMBER_GENERIC: Begin signatures, 1 items
|
||||
// MEMBER_GENERIC-NEXT: Signature[Active]: dot(<param name="other" active>with: Vector<Double></param>) -> Double
|
||||
// MEMBER_GENERIC-NEXT: End signatures
|
||||
// MEMBER_GENERIC: Begin signatures, 1 items
|
||||
// MEMBER_GENERIC-DAG: Signature[Active]: dot(<param name="other" active>with: Vector<Double></param>) -> Double
|
||||
|
||||
@@ -16,10 +16,8 @@ struct Matrix {
|
||||
|
||||
let matrix = Matrix()
|
||||
matrix[#^MEMBER_SUBSCRIPT^#]
|
||||
|
||||
// MEMBER_SUBSCRIPT: Begin signatures, 4 items
|
||||
// MEMBER_SUBSCRIPT-NEXT: Signature[Active]: subscript(<param active>keyPath: KeyPath<Matrix, Value></param>) -> Value
|
||||
// MEMBER_SUBSCRIPT-NEXT: Signature: subscript(<param name="row" active>row: Int</param>, <param name="column">column: Int</param>) -> Int
|
||||
// MEMBER_SUBSCRIPT-NEXT: Signature: subscript(<param name="r" active>row: Int</param>) -> [Int]
|
||||
// MEMBER_SUBSCRIPT-NEXT: Signature: subscript(<param name="c" active>column: Int</param>) -> [Int]
|
||||
// MEMBER_SUBSCRIPT-NEXT: End signatures
|
||||
// MEMBER_SUBSCRIPT: Begin signatures, 4 items
|
||||
// MEMBER_SUBSCRIPT-DAG: Signature[Active]: subscript(<param active>keyPath: KeyPath<Matrix, Value></param>) -> Value
|
||||
// MEMBER_SUBSCRIPT-DAG: Signature: subscript(<param name="row" active>row: Int</param>, <param name="column">column: Int</param>) -> Int
|
||||
// MEMBER_SUBSCRIPT-DAG: Signature: subscript(<param name="r" active>row: Int</param>) -> [Int]
|
||||
// MEMBER_SUBSCRIPT-DAG: Signature: subscript(<param name="c" active>column: Int</param>) -> [Int]
|
||||
|
||||
@@ -5,7 +5,5 @@ struct `Raw Identifier` {
|
||||
}
|
||||
|
||||
`Raw Identifier`().`some method :)`(#^RAW_ID^#)
|
||||
|
||||
// RAW_ID: Begin signatures, 1 items
|
||||
// RAW_ID-NEXT: Signature[Active]: `some method :)`(<param name="param label?" active>`argument label!`: Int</param>)
|
||||
// RAW_ID-NEXT: End signatures
|
||||
// RAW_ID: Begin signatures, 1 items
|
||||
// RAW_ID-DAG: Signature[Active]: `some method :)`(<param name="param label?" active>`argument label!`: Int</param>)
|
||||
|
||||
@@ -33,14 +33,12 @@ func add(x: Int) -> (Int) -> Int {
|
||||
}
|
||||
|
||||
add(#^TOP_LEVEL^#)
|
||||
|
||||
// TOP_LEVEL: Begin signatures, 8 items
|
||||
// TOP_LEVEL-NEXT: Signature[Active]: add(<param name="x" active>_ x: Int</param>, <param name="y">to: Int</param>) -> Int
|
||||
// TOP_LEVEL-NEXT: Signature: add(<param name="x" active>oneTo: inout Int</param>)
|
||||
// TOP_LEVEL-NEXT: Signature: add(<param name="x" active>_ x: AdditiveArithmetic</param>, <param name="y">to: AdditiveArithmetic</param>) -> AdditiveArithmetic
|
||||
// TOP_LEVEL-NEXT: Signature: add(<param name="first" active>first: Double!</param>, <param name="second">second: Float</param>, <param name="third">third: Int</param>) -> Double
|
||||
// TOP_LEVEL-NEXT: Signature: add(<param name="param1" active>arg1: Double</param>, <param name="arg2">arg2: Float</param>, <param name="param3">arg3: Int</param>) -> Double
|
||||
// TOP_LEVEL-NEXT: Signature: add(<param name="numbers" active>numbers: Double...</param>) -> Double
|
||||
// TOP_LEVEL-NEXT: Signature: add(<param name="x" active>x: Int</param>, <param name="y">y: Int</param>, <param name="adder">with: (Int, Int) -> Int</param>) -> Int
|
||||
// TOP_LEVEL-NEXT: Signature: add(<param name="x" active>x: Int</param>) -> (Int) -> Int
|
||||
// TOP_LEVEL-NEXT: End signatures
|
||||
// TOP_LEVEL: Begin signatures, 8 items
|
||||
// TOP_LEVEL-DAG: Signature[Active]: add(<param name="x" active>_ x: Int</param>, <param name="y">to: Int</param>) -> Int
|
||||
// TOP_LEVEL-DAG: Signature: add(<param name="x" active>oneTo: inout Int</param>)
|
||||
// TOP_LEVEL-DAG: Signature: add(<param name="x" active>_ x: AdditiveArithmetic</param>, <param name="y">to: AdditiveArithmetic</param>) -> AdditiveArithmetic
|
||||
// TOP_LEVEL-DAG: Signature: add(<param name="first" active>first: Double!</param>, <param name="second">second: Float</param>, <param name="third">third: Int</param>) -> Double
|
||||
// TOP_LEVEL-DAG: Signature: add(<param name="param1" active>arg1: Double</param>, <param name="arg2">arg2: Float</param>, <param name="param3">arg3: Int</param>) -> Double
|
||||
// TOP_LEVEL-DAG: Signature: add(<param name="numbers" active>numbers: Double...</param>) -> Double
|
||||
// TOP_LEVEL-DAG: Signature: add(<param name="x" active>x: Int</param>, <param name="y">y: Int</param>, <param name="adder">with: (Int, Int) -> Int</param>) -> Int
|
||||
// TOP_LEVEL-DAG: Signature: add(<param name="x" active>x: Int</param>) -> (Int) -> Int
|
||||
|
||||
@@ -5,7 +5,5 @@ func add<T>(x: T, y: T, with adder: (T, T) -> T) -> T where T: AdditiveArithmeti
|
||||
}
|
||||
|
||||
add(x: "A", y: "B", with: #^TOP_LEVEL_GENERIC^#)
|
||||
|
||||
// TOP_LEVEL_GENERIC: Begin signatures, 1 items
|
||||
// TOP_LEVEL_GENERIC-NEXT: Signature[Active]: add(<param name="x">x: String</param>, <param name="y">y: String</param>, <param name="adder" active>with: (String, String) -> String</param>) -> String
|
||||
// TOP_LEVEL_GENERIC-NEXT: End signatures
|
||||
// TOP_LEVEL_GENERIC: Begin signatures, 1 items
|
||||
// TOP_LEVEL_GENERIC-DAG: Signature[Active]: add(<param name="x">x: String</param>, <param name="y">y: String</param>, <param name="adder" active>with: (String, String) -> String</param>) -> String
|
||||
|
||||
@@ -1489,38 +1489,33 @@ static void printSignatureHelpResultsImpl(const FormattedSignatureHelp &Result,
|
||||
}
|
||||
|
||||
StringRef signatureText = Signature.Text;
|
||||
std::string formattedSignature;
|
||||
llvm::raw_string_ostream signatureOS(formattedSignature);
|
||||
|
||||
unsigned currentPos = 0;
|
||||
for (unsigned j = 0; j < Signature.Params.size(); ++j) {
|
||||
const auto &Param = Signature.Params[j];
|
||||
|
||||
if (Param.Offset > currentPos) {
|
||||
signatureOS << signatureText.substr(currentPos,
|
||||
Param.Offset - currentPos);
|
||||
OS << signatureText.substr(currentPos, Param.Offset - currentPos);
|
||||
}
|
||||
|
||||
signatureOS << "<param";
|
||||
OS << "<param";
|
||||
if (!Param.Name.empty()) {
|
||||
signatureOS << " name=\"" << Param.Name << '"';
|
||||
OS << " name=\"" << Param.Name << '"';
|
||||
}
|
||||
if (Signature.ActiveParam && *Signature.ActiveParam == j) {
|
||||
signatureOS << " active";
|
||||
OS << " active";
|
||||
}
|
||||
signatureOS << ">";
|
||||
signatureOS << signatureText.substr(Param.Offset, Param.Length);
|
||||
signatureOS << "</param>";
|
||||
OS << ">";
|
||||
OS << signatureText.substr(Param.Offset, Param.Length);
|
||||
OS << "</param>";
|
||||
|
||||
currentPos = Param.Offset + Param.Length;
|
||||
}
|
||||
|
||||
if (currentPos < signatureText.size()) {
|
||||
signatureOS << signatureText.substr(currentPos);
|
||||
OS << signatureText.substr(currentPos);
|
||||
}
|
||||
|
||||
OS << formattedSignature;
|
||||
|
||||
if (!Signature.DocComment.empty()) {
|
||||
OS << "; Documentation=";
|
||||
printWithEscaping(Signature.DocComment, OS);
|
||||
|
||||
Reference in New Issue
Block a user