From a99ca851df88859f05ad6bdcfedff586ef9d2dbc Mon Sep 17 00:00:00 2001 From: Harlan Haskins Date: Tue, 2 Aug 2016 17:33:13 -0700 Subject: [PATCH] Add empty parens to var-to-function renames --- lib/Sema/MiscDiagnostics.cpp | 5 +++++ test/1_stdlib/Renames.swift | 4 ++-- test/Sema/availability.swift | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/Sema/MiscDiagnostics.cpp b/lib/Sema/MiscDiagnostics.cpp index cbf3735d4d5be..d973ebfb82a73 100644 --- a/lib/Sema/MiscDiagnostics.cpp +++ b/lib/Sema/MiscDiagnostics.cpp @@ -1359,6 +1359,11 @@ void swift::fixItAvailableAttrRename(TypeChecker &TC, baseReplace += '.'; } 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); } diff --git a/test/1_stdlib/Renames.swift b/test/1_stdlib/Renames.swift index 4b8271f9d0f30..f16bdfa390057 100644 --- a/test/1_stdlib/Renames.swift +++ b/test/1_stdlib/Renames.swift @@ -457,8 +457,8 @@ func _String(x: String, s: S, c: C, i: String.Index) x.replaceRange(i..; We should suggest to add '()' } func _String(s: S, sep: String) where S.Iterator.Element == String { diff --git a/test/Sema/availability.swift b/test/Sema/availability.swift index 08a1b6b830d76..b58194d7f912a 100644 --- a/test/Sema/availability.swift +++ b/test/Sema/availability.swift @@ -130,3 +130,18 @@ func testPlatforms() { let _: UnavailableOnOSXAppExt = 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 + } +} +