How does this resolve the ambiguity of
func doAThing(with items: Any...) -> [Any] {
return items
}
let res = doAThing(with: 1, 2, 3)
let res2 = doAThing(with: res)
Does the second call to doAThing receive three arguments (1, 2, 3, splatting res), or only one ([1, 2, 3], since res can be promoted to Any)? Or is this now a compilation error (which is potentially source-breaking)?
I've been bitten both ways in other languages which support argument splatting in this way; it'd be nice to offer a less ambiguous and surprising solution.