Files
swift-mirror/test/SourceKit/SignatureHelp/signature_help_default_args.swift

149 lines
3.1 KiB
Swift

// RUN: %empty-directory(%t)
// RUN: split-file %s %t
// RUN: %sourcekitd-test -req=signaturehelp -pos=23:5 %t/input.swift -- %t/input.swift > %t/actual.result
// RUN: diff -u %t/expected.result %t/actual.result
//--- input.swift
func add(_ x: Int = 10, to y: Int) -> Int {}
func add(oneTo x: inout Int) {}
func add(_ x: Int, to y: Int? = nil) -> String {}
func add(first: Double!, second: Float = .pi, third: Int) -> Double {}
struct S {
let a: Bool
}
func add(s: S = S(a: false)) -> Double {}
func add(x: Int, y: Int, with adder: (Int, Int) -> Int = { $0 + $1 }) -> Int {}
let importantValue = 42
func add(x: Int = importantValue) {}
func add(x: Int, line: UInt = #line, file: StaticString = #file) {}
add()
//--- expected.result
{
key.signatures: [
{
key.name: "add(_ x: Int = 10, to: Int) -> Int",
key.parameters: [
{
key.nameoffset: 4,
key.namelength: 13
},
{
key.nameoffset: 19,
key.namelength: 7
}
],
key.active_parameter: 0
},
{
key.name: "add(oneTo: inout Int)",
key.parameters: [
{
key.nameoffset: 4,
key.namelength: 16
}
],
key.active_parameter: 0
},
{
key.name: "add(_ x: Int, to: Int? = nil) -> String",
key.parameters: [
{
key.nameoffset: 4,
key.namelength: 8
},
{
key.nameoffset: 14,
key.namelength: 14
}
],
key.active_parameter: 0
},
{
key.name: "add(first: Double!, second: Float = .pi, third: Int) -> Double",
key.parameters: [
{
key.nameoffset: 4,
key.namelength: 14
},
{
key.nameoffset: 20,
key.namelength: 19
},
{
key.nameoffset: 41,
key.namelength: 10
}
],
key.active_parameter: 0
},
{
key.name: "add(s: S = S(a: false)) -> Double",
key.parameters: [
{
key.nameoffset: 4,
key.namelength: 18
}
],
key.active_parameter: 0
},
{
key.name: "add(x: Int, y: Int, with: (Int, Int) -> Int = { $0 + $1 }) -> Int",
key.parameters: [
{
key.nameoffset: 4,
key.namelength: 6
},
{
key.nameoffset: 12,
key.namelength: 6
},
{
key.nameoffset: 20,
key.namelength: 37
}
],
key.active_parameter: 0
},
{
key.name: "add(x: Int = importantValue)",
key.parameters: [
{
key.nameoffset: 4,
key.namelength: 23
}
],
key.active_parameter: 0
},
{
key.name: "add(x: Int, line: UInt = #line, file: StaticString = #file)",
key.parameters: [
{
key.nameoffset: 4,
key.namelength: 6
},
{
key.nameoffset: 12,
key.namelength: 18
},
{
key.nameoffset: 32,
key.namelength: 26
}
],
key.active_parameter: 0
}
],
key.active_signature: 0
}