@@ -65,7 +65,8 @@ static bool diagnoseExplicitUnavailability(
6565static 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
7071static 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,
35123512bool 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