Add empty parens to var-to-function renames

This commit is contained in:
Harlan Haskins
2016-08-02 17:33:13 -07:00
parent d1206387c3
commit a99ca851df
3 changed files with 22 additions and 2 deletions

View File

@@ -1359,6 +1359,11 @@ void swift::fixItAvailableAttrRename(TypeChecker &TC,
baseReplace += '.'; baseReplace += '.';
} }
baseReplace += parsed.BaseName; baseReplace += parsed.BaseName;
if (parsed.IsFunctionName && parsed.ArgumentLabels.empty() && !call) {
// If we're going from a var to a function with no arguments, emit an
// empty parameter list.
baseReplace += "()";
}
diag.fixItReplace(referenceRange, baseReplace); diag.fixItReplace(referenceRange, baseReplace);
} }

View File

@@ -457,8 +457,8 @@ func _String<S, C>(x: String, s: S, c: C, i: String.Index)
x.replaceRange(i..<i, with: x) // expected-error {{'replaceRange(_:with:)' has been renamed to 'replaceSubrange'}} {{5-17=replaceSubrange}} {{none}} x.replaceRange(i..<i, with: x) // expected-error {{'replaceRange(_:with:)' has been renamed to 'replaceSubrange'}} {{5-17=replaceSubrange}} {{none}}
_ = x.removeAtIndex(i) // expected-error {{'removeAtIndex' has been renamed to 'remove(at:)'}} {{9-22=remove}} {{23-23=at: }} {{none}} _ = x.removeAtIndex(i) // expected-error {{'removeAtIndex' has been renamed to 'remove(at:)'}} {{9-22=remove}} {{23-23=at: }} {{none}}
x.removeRange(i..<i) // expected-error {{'removeRange' has been renamed to 'removeSubrange'}} {{5-16=removeSubrange}} {{none}} x.removeRange(i..<i) // expected-error {{'removeRange' has been renamed to 'removeSubrange'}} {{5-16=removeSubrange}} {{none}}
_ = x.lowercaseString // expected-error {{'lowercaseString' has been renamed to 'lowercased()'}} {{9-24=lowercased}} {{none}} _ = x.lowercaseString // expected-error {{'lowercaseString' has been renamed to 'lowercased()'}} {{9-24=lowercased()}} {{none}}
_ = x.uppercaseString // expected-error {{'uppercaseString' has been renamed to 'uppercased()'}} {{9-24=uppercased}} {{none}} _ = x.uppercaseString // expected-error {{'uppercaseString' has been renamed to 'uppercased()'}} {{9-24=uppercased()}} {{none}}
// FIXME: SR-1649 <rdar://problem/26563343>; We should suggest to add '()' // FIXME: SR-1649 <rdar://problem/26563343>; We should suggest to add '()'
} }
func _String<S : Sequence>(s: S, sep: String) where S.Iterator.Element == String { func _String<S : Sequence>(s: S, sep: String) where S.Iterator.Element == String {

View File

@@ -130,3 +130,18 @@ func testPlatforms() {
let _: UnavailableOnOSXAppExt = 0 let _: UnavailableOnOSXAppExt = 0
let _: UnavailableOnMacOSAppExt = 0 let _: UnavailableOnMacOSAppExt = 0
} }
struct VarToFunc {
@available(*, unavailable, renamed: "function()")
var variable: Int { return 42 } // expected-note{{explicitly marked unavailable here}}
@available(*, unavailable, renamed: "function()")
func oldFunction() -> Int { return 42 } // expected-note{{explicitly marked unavailable here}}
func function() -> Int {
_ = variable // expected-error{{'variable' has been renamed to 'function()'}}{{9-17=function()}}
_ = oldFunction() //expected-error{{'oldFunction()' has been renamed to 'function()'}}{{9-20=function}}
return 42
}
}