Skip to content

Commit a99ca85

Browse files
author
Harlan Haskins
committed
Add empty parens to var-to-function renames
1 parent d120638 commit a99ca85

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

lib/Sema/MiscDiagnostics.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,6 +1359,11 @@ void swift::fixItAvailableAttrRename(TypeChecker &TC,
13591359
baseReplace += '.';
13601360
}
13611361
baseReplace += parsed.BaseName;
1362+
if (parsed.IsFunctionName && parsed.ArgumentLabels.empty() && !call) {
1363+
// If we're going from a var to a function with no arguments, emit an
1364+
// empty parameter list.
1365+
baseReplace += "()";
1366+
}
13621367
diag.fixItReplace(referenceRange, baseReplace);
13631368
}
13641369

test/1_stdlib/Renames.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,8 +457,8 @@ func _String<S, C>(x: String, s: S, c: C, i: String.Index)
457457
x.replaceRange(i..<i, with: x) // expected-error {{'replaceRange(_:with:)' has been renamed to 'replaceSubrange'}} {{5-17=replaceSubrange}} {{none}}
458458
_ = x.removeAtIndex(i) // expected-error {{'removeAtIndex' has been renamed to 'remove(at:)'}} {{9-22=remove}} {{23-23=at: }} {{none}}
459459
x.removeRange(i..<i) // expected-error {{'removeRange' has been renamed to 'removeSubrange'}} {{5-16=removeSubrange}} {{none}}
460-
_ = x.lowercaseString // expected-error {{'lowercaseString' has been renamed to 'lowercased()'}} {{9-24=lowercased}} {{none}}
461-
_ = x.uppercaseString // expected-error {{'uppercaseString' has been renamed to 'uppercased()'}} {{9-24=uppercased}} {{none}}
460+
_ = x.lowercaseString // expected-error {{'lowercaseString' has been renamed to 'lowercased()'}} {{9-24=lowercased()}} {{none}}
461+
_ = x.uppercaseString // expected-error {{'uppercaseString' has been renamed to 'uppercased()'}} {{9-24=uppercased()}} {{none}}
462462
// FIXME: SR-1649 <rdar://problem/26563343>; We should suggest to add '()'
463463
}
464464
func _String<S : Sequence>(s: S, sep: String) where S.Iterator.Element == String {

test/Sema/availability.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,18 @@ func testPlatforms() {
130130
let _: UnavailableOnOSXAppExt = 0
131131
let _: UnavailableOnMacOSAppExt = 0
132132
}
133+
134+
struct VarToFunc {
135+
@available(*, unavailable, renamed: "function()")
136+
var variable: Int { return 42 } // expected-note{{explicitly marked unavailable here}}
137+
138+
@available(*, unavailable, renamed: "function()")
139+
func oldFunction() -> Int { return 42 } // expected-note{{explicitly marked unavailable here}}
140+
141+
func function() -> Int {
142+
_ = variable // expected-error{{'variable' has been renamed to 'function()'}}{{9-17=function()}}
143+
_ = oldFunction() //expected-error{{'oldFunction()' has been renamed to 'function()'}}{{9-20=function}}
144+
return 42
145+
}
146+
}
147+

0 commit comments

Comments
 (0)