@@ -65,7 +65,8 @@ static bool diagnoseExplicitUnavailability(
65
65
static bool diagnoseExplicitUnavailability (
66
66
const ValueDecl *D, SourceRange R, const ExportContext &Where,
67
67
DeclAvailabilityFlags Flags,
68
- llvm::function_ref<void (InFlightDiagnostic &)> attachRenameFixIts);
68
+ llvm::function_ref<void (InFlightDiagnostic &, StringRef)>
69
+ attachRenameFixIts);
69
70
70
71
static bool diagnoseSubstitutionMapAvailability (
71
72
SourceLoc loc, SubstitutionMap subs, const ExportContext &where,
@@ -2953,8 +2954,9 @@ void swift::diagnoseOverrideOfUnavailableDecl(ValueDecl *override,
2953
2954
ExportContext where = ExportContext::forDeclSignature (override , nullptr );
2954
2955
diagnoseExplicitUnavailability (
2955
2956
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);
2958
2960
if (!parsedName || parsedName.isPropertyAccessor () ||
2959
2961
parsedName.isMember () || parsedName.isOperator ()) {
2960
2962
return ;
@@ -2986,10 +2988,8 @@ static bool diagnoseExplicitUnavailability(const ValueDecl *D, SourceRange R,
2986
2988
const Expr *call,
2987
2989
DeclAvailabilityFlags Flags) {
2988
2990
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);
2993
2993
});
2994
2994
}
2995
2995
@@ -3512,7 +3512,8 @@ static void checkFunctionConversionAvailability(Type srcType, Type destType,
3512
3512
bool diagnoseExplicitUnavailability (
3513
3513
const ValueDecl *D, SourceRange R, const ExportContext &Where,
3514
3514
DeclAvailabilityFlags Flags,
3515
- llvm::function_ref<void (InFlightDiagnostic &)> attachRenameFixIts) {
3515
+ llvm::function_ref<void (InFlightDiagnostic &, StringRef)>
3516
+ attachRenameFixIts) {
3516
3517
auto diagnosticInfo = getExplicitUnavailabilityDiagnosticInfo (D, Where);
3517
3518
if (!diagnosticInfo)
3518
3519
return false ;
@@ -3556,7 +3557,7 @@ bool diagnoseExplicitUnavailability(
3556
3557
D, replaceKind.has_value (), rawReplaceKind,
3557
3558
newName, EncodedMessage.Message );
3558
3559
diag.limitBehavior (limit);
3559
- attachRenameFixIts (diag);
3560
+ attachRenameFixIts (diag, rename );
3560
3561
} else if (isSubscriptReturningString (D, ctx)) {
3561
3562
diags.diagnose (Loc, diag::availability_string_subscript_migration)
3562
3563
.highlight (R)
0 commit comments