mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Fixes crash in "Convert To Trailing Closure" action if call has defaulted parameters. Handle `TupleShuffleExpr` properly. rdar://problem/41093898
41 lines
1.5 KiB
Swift
41 lines
1.5 KiB
Swift
struct Foo {
|
|
static func foo(a: () -> Int) {}
|
|
func qux(x: Int, y: () -> Int ) {}
|
|
}
|
|
|
|
func testTrailingClosure() -> String {
|
|
Foo.foo(a: { 1 })
|
|
Foo.bar(a: { print(3); return 1 })
|
|
Foo().qux(x: 1, y: { 1 })
|
|
let _ = Foo().quux(x: 1, y: { 1 })
|
|
|
|
[1,2,3]
|
|
.filter({ $0 % 2 == 0 })
|
|
.map({ $0 + 1 })
|
|
}
|
|
|
|
func foobar(first: String? = nil, closure: () -> Void) { fatalError() }
|
|
func blah() {
|
|
_ = foobar(closure: { print("foo") })
|
|
}
|
|
// RUN: %empty-directory(%t.result)
|
|
|
|
// RUN: %refactor -trailingclosure -source-filename %s -pos=7:3 > %t.result/L7.swift
|
|
// RUN: diff -u %S/Outputs/basic/L7.swift.expected %t.result/L7.swift
|
|
|
|
// RUN: %refactor -trailingclosure -source-filename %s -pos=8:11 > %t.result/L8.swift
|
|
// RUN: diff -u %S/Outputs/basic/L8.swift.expected %t.result/L8.swift
|
|
|
|
// RUN: %refactor -trailingclosure -source-filename %s -pos=9:8 > %t.result/L9.swift
|
|
// RUN: diff -u %S/Outputs/basic/L9.swift.expected %t.result/L9.swift
|
|
|
|
// RUN: %refactor -trailingclosure -source-filename %s -pos=10:17 > %t.result/L10.swift
|
|
// RUN: diff -u %S/Outputs/basic/L10.swift.expected %t.result/L10.swift
|
|
|
|
// RUN: %refactor -trailingclosure -source-filename %s -pos=13:5 > %t.result/L13.swift
|
|
// RUN: diff -u %S/Outputs/basic/L13.swift.expected %t.result/L13.swift
|
|
// RUN: %refactor -trailingclosure -source-filename %s -pos=14:5 > %t.result/L14.swift
|
|
// RUN: diff -u %S/Outputs/basic/L14.swift.expected %t.result/L14.swift
|
|
// RUN: %refactor -trailingclosure -source-filename %s -pos=19:7 > %t.result/L19.swift
|
|
// RUN: diff -u %S/Outputs/basic/L19.swift.expected %t.result/L19.swift
|