Skip to content

Commit fdb182b

Browse files
committed
Sema: Pass rename to diagnoseExplicitUnavailability() lambda.
This ensures that it doesn't need to be recomputed, which introduces an opportunity for inconsistency. NFC.
1 parent cc9713b commit fdb182b

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

lib/Sema/TypeCheckAvailability.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ static bool diagnoseExplicitUnavailability(
6565
static bool diagnoseExplicitUnavailability(
6666
const ValueDecl *D, SourceRange R, const ExportContext &Where,
6767
DeclAvailabilityFlags Flags,
68-
llvm::function_ref<void(InFlightDiagnostic &)> attachRenameFixIts);
68+
llvm::function_ref<void(InFlightDiagnostic &, StringRef)>
69+
attachRenameFixIts);
6970

7071
static bool diagnoseSubstitutionMapAvailability(
7172
SourceLoc loc, SubstitutionMap subs, const ExportContext &where,
@@ -2953,8 +2954,9 @@ void swift::diagnoseOverrideOfUnavailableDecl(ValueDecl *override,
29532954
ExportContext where = ExportContext::forDeclSignature(override, nullptr);
29542955
diagnoseExplicitUnavailability(
29552956
base, override->getLoc(), where,
2956-
/*Flags*/ std::nullopt, [&](InFlightDiagnostic &diag) {
2957-
ParsedDeclName parsedName = parseDeclName(attr.getRename());
2957+
/*Flags*/ std::nullopt,
2958+
[&override, &ctx](InFlightDiagnostic &diag, StringRef rename) {
2959+
ParsedDeclName parsedName = parseDeclName(rename);
29582960
if (!parsedName || parsedName.isPropertyAccessor() ||
29592961
parsedName.isMember() || parsedName.isOperator()) {
29602962
return;
@@ -2986,10 +2988,8 @@ static bool diagnoseExplicitUnavailability(const ValueDecl *D, SourceRange R,
29862988
const Expr *call,
29872989
DeclAvailabilityFlags Flags) {
29882990
return diagnoseExplicitUnavailability(
2989-
D, R, Where, Flags, [=](InFlightDiagnostic &diag) {
2990-
auto attr = D->getUnavailableAttr();
2991-
assert(attr);
2992-
fixItAvailableAttrRename(diag, R, D, attr->getRename(), call);
2991+
D, R, Where, Flags, [=](InFlightDiagnostic &diag, StringRef rename) {
2992+
fixItAvailableAttrRename(diag, R, D, rename, call);
29932993
});
29942994
}
29952995

@@ -3512,7 +3512,8 @@ static void checkFunctionConversionAvailability(Type srcType, Type destType,
35123512
bool diagnoseExplicitUnavailability(
35133513
const ValueDecl *D, SourceRange R, const ExportContext &Where,
35143514
DeclAvailabilityFlags Flags,
3515-
llvm::function_ref<void(InFlightDiagnostic &)> attachRenameFixIts) {
3515+
llvm::function_ref<void(InFlightDiagnostic &, StringRef)>
3516+
attachRenameFixIts) {
35163517
auto diagnosticInfo = getExplicitUnavailabilityDiagnosticInfo(D, Where);
35173518
if (!diagnosticInfo)
35183519
return false;
@@ -3556,7 +3557,7 @@ bool diagnoseExplicitUnavailability(
35563557
D, replaceKind.has_value(), rawReplaceKind,
35573558
newName, EncodedMessage.Message);
35583559
diag.limitBehavior(limit);
3559-
attachRenameFixIts(diag);
3560+
attachRenameFixIts(diag, rename);
35603561
} else if (isSubscriptReturningString(D, ctx)) {
35613562
diags.diagnose(Loc, diag::availability_string_subscript_migration)
35623563
.highlight(R)

0 commit comments

Comments
 (0)