Skip to content

Commit 2dda257

Browse files
authored
Merge pull request #68053 from artemcm/AvailabilityRenameLookThroughFunctionConversions
Look through function conversion expressions when querying the called function decl of a deprecated-renamed API in order to emit a fix-it
2 parents c16bbd9 + 2910e87 commit 2dda257

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

lib/Sema/TypeCheckAvailability.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2367,7 +2367,8 @@ static void fixItAvailableAttrRename(InFlightDiagnostic &diag,
23672367
// renaming fix-it doesn't need do be produced.
23682368
if ((parsed.ContextName.empty() ||
23692369
parsed.ContextName == callContextName) &&
2370-
CE->getCalledValue()->getBaseName() == parsed.BaseName) {
2370+
CE->getCalledValue(/*skipFunctionConversions=*/true)
2371+
->getBaseName() == parsed.BaseName) {
23712372
shouldEmitRenameFixit = false;
23722373
}
23732374
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// REQUIRES: concurrency
2+
// RUN: %target-typecheck-verify-swift -verify-ignore-unknown %s
3+
4+
@MainActor
5+
@available(SwiftStdlib 5.5, *)
6+
public class SomeMainActorClass {
7+
@available(*, deprecated, renamed: "request(at:completion:)")
8+
public func request(at: Int) async throws {}
9+
}
10+
11+
@available(SwiftStdlib 5.5, *)
12+
func asyncStuff() async throws {
13+
let foo = await SomeMainActorClass()
14+
try await foo.request(at: 11) // expected-warning{{'request(at:)' is deprecated: renamed to 'request(at:completion:)'}}
15+
//expected-note@-1{{use 'request(at:completion:)' instead}}
16+
}

0 commit comments

Comments
 (0)