@@ -2821,28 +2821,23 @@ static void diagnoseIfDeprecated(SourceRange ReferenceRange,
2821
2821
return ;
2822
2822
2823
2823
auto Domain = Attr->getDomain ();
2824
+ auto DeprecatedRange = Attr->getDeprecatedRange (Context);
2824
2825
llvm::VersionTuple DeprecatedVersion;
2825
- if (Attr-> getDeprecated ())
2826
- DeprecatedVersion = Attr-> getDeprecated (). value ();
2826
+ if (DeprecatedRange. hasMinimumVersion ())
2827
+ DeprecatedVersion = DeprecatedRange. getRawMinimumVersion ();
2827
2828
2828
2829
auto Message = Attr->getMessage ();
2829
2830
auto NewName = Attr->getRename ();
2830
2831
if (Message.empty () && NewName.empty ()) {
2831
2832
Context.Diags
2832
2833
.diagnose (ReferenceRange.Start , diag::availability_deprecated,
2833
2834
DeprecatedDecl, Attr->isPlatformSpecific (), Domain,
2834
- Attr-> getDeprecated (). has_value (), DeprecatedVersion,
2835
+ !DeprecatedVersion. empty (), DeprecatedVersion,
2835
2836
/* message*/ StringRef ())
2836
2837
.highlight (Attr->getParsedAttr ()->getRange ());
2837
2838
return ;
2838
2839
}
2839
2840
2840
- // FIXME: [availability] Remap before emitting diagnostic above.
2841
- llvm::VersionTuple RemappedDeprecatedVersion;
2842
- if (AvailabilityInference::updateDeprecatedAvailabilityDomainForFallback (
2843
- *Attr, Context, Domain, RemappedDeprecatedVersion))
2844
- DeprecatedVersion = RemappedDeprecatedVersion;
2845
-
2846
2841
SmallString<32 > newNameBuf;
2847
2842
std::optional<ReplacementDeclKind> replacementDeclKind =
2848
2843
describeRename (Context, NewName, /* decl*/ nullptr , newNameBuf);
@@ -2853,7 +2848,7 @@ static void diagnoseIfDeprecated(SourceRange ReferenceRange,
2853
2848
Context.Diags
2854
2849
.diagnose (ReferenceRange.Start , diag::availability_deprecated,
2855
2850
DeprecatedDecl, Attr->isPlatformSpecific (), Domain,
2856
- Attr-> getDeprecated (). has_value (), DeprecatedVersion,
2851
+ !DeprecatedVersion. empty (), DeprecatedVersion,
2857
2852
EncodedMessage.Message )
2858
2853
.highlight (Attr->getParsedAttr ()->getRange ());
2859
2854
} else {
@@ -2862,7 +2857,7 @@ static void diagnoseIfDeprecated(SourceRange ReferenceRange,
2862
2857
Context.Diags
2863
2858
.diagnose (ReferenceRange.Start , diag::availability_deprecated_rename,
2864
2859
DeprecatedDecl, Attr->isPlatformSpecific (), Domain,
2865
- Attr-> getDeprecated (). has_value (), DeprecatedVersion,
2860
+ !DeprecatedVersion. empty (), DeprecatedVersion,
2866
2861
replacementDeclKind.has_value (), rawReplaceKind, newName)
2867
2862
.highlight (Attr->getParsedAttr ()->getRange ());
2868
2863
}
@@ -2909,21 +2904,17 @@ static bool diagnoseIfDeprecated(SourceLoc loc,
2909
2904
auto proto = rootConf->getProtocol ()->getDeclaredInterfaceType ();
2910
2905
2911
2906
auto domain = attr->getDomain ();
2907
+ auto deprecatedRange = attr->getDeprecatedRange (ctx);
2912
2908
llvm::VersionTuple deprecatedVersion;
2913
- if (attr->getDeprecated ())
2914
- deprecatedVersion = attr->getDeprecated ().value ();
2915
-
2916
- llvm::VersionTuple remappedDeprecatedVersion;
2917
- if (AvailabilityInference::updateDeprecatedAvailabilityDomainForFallback (
2918
- *attr, ctx, domain, remappedDeprecatedVersion))
2919
- deprecatedVersion = remappedDeprecatedVersion;
2909
+ if (deprecatedRange.hasMinimumVersion ())
2910
+ deprecatedVersion = deprecatedRange.getRawMinimumVersion ();
2920
2911
2921
2912
auto message = attr->getMessage ();
2922
2913
if (message.empty ()) {
2923
2914
ctx.Diags
2924
2915
.diagnose (loc, diag::conformance_availability_deprecated, type, proto,
2925
2916
attr->isPlatformSpecific (), domain,
2926
- attr-> getDeprecated (). has_value (), deprecatedVersion,
2917
+ !deprecatedVersion. empty (), deprecatedVersion,
2927
2918
/* message*/ StringRef ())
2928
2919
.highlight (attr->getParsedAttr ()->getRange ());
2929
2920
return true ;
@@ -2933,7 +2924,7 @@ static bool diagnoseIfDeprecated(SourceLoc loc,
2933
2924
ctx.Diags
2934
2925
.diagnose (loc, diag::conformance_availability_deprecated, type, proto,
2935
2926
attr->isPlatformSpecific (), domain,
2936
- attr-> getDeprecated (). has_value (), deprecatedVersion,
2927
+ !deprecatedVersion. empty (), deprecatedVersion,
2937
2928
encodedMessage.Message )
2938
2929
.highlight (attr->getParsedAttr ()->getRange ());
2939
2930
return true ;
0 commit comments