mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
A label range of 0 length was being reported as the label of trailing closure
arguments, just before the opening '{'.
For the rename refactoring, this meant that if the corresponding parameter had
an external label (e.g. 'a') the occurrence would be treated as not matching the
expected symbol name, and so not be updated at all.
For the migrator, when renaming a function with an unlabelled closure for its
last parameter to have a label, it would incorrectly insert the new label in
front of the opening '{' on all of that function's callsites with trailing
closures.
Resolves rdar://problem/42162571
29 lines
1.0 KiB
Swift
29 lines
1.0 KiB
Swift
// REQUIRES: objc_interop
|
|
// RUN: %empty-directory(%t.mod)
|
|
// RUN: %target-swift-frontend -emit-module -o %t.mod/Cities.swiftmodule %S/Inputs/Cities.swift -module-name Cities -parse-as-library
|
|
// RUN: %empty-directory(%t) && %target-swift-frontend -c -update-code -disable-migrator-fixits -primary-file %s -I %t.mod -api-diff-data-file %S/Inputs/API.json -emit-migrated-file-path %t/rename-func-decl.swift.result -o %t/rename-func-decl.swift.remap
|
|
// RUN: diff -u %S/rename-func-decl.swift.expected %t/rename-func-decl.swift.result
|
|
|
|
import Cities
|
|
|
|
class MyCities : MoreCities {
|
|
func setZooLocation(x ix: Int, y iy: Int, z iz: Int) {}
|
|
func addZooAt(_ x: Int, y: Int, z: Int) {}
|
|
}
|
|
|
|
class MySubTopLevelType: ToplevelType {
|
|
override func member(_ x: @escaping ([Any]?) -> Void) {}
|
|
}
|
|
|
|
class MySubTopLevelType2: ToplevelType {
|
|
override func member(_ x: @escaping (((([(Any)])?))) -> Void) {}
|
|
}
|
|
|
|
class SubCities: Cities {
|
|
override var yogurt: Int { return 2 }
|
|
}
|
|
|
|
func boo(_ a: ToplevelType) {
|
|
a.trailing { print($0!) }
|
|
}
|