@@ -88,57 +88,50 @@ bool CodeCompletionDiagnostics::getDiagnosticForDeprecated(
8888 // So getter/setter specific availability doesn't work in code completion.
8989
9090 auto Domain = Attr.getDomain ();
91- llvm::VersionTuple DeprecatedVersion;
92- if (Attr.getDeprecated ())
93- DeprecatedVersion = Attr.getDeprecated ().value ();
94-
95- llvm::VersionTuple RemappedDeprecatedVersion;
96- if (AvailabilityInference::updateDeprecatedAvailabilityDomainForFallback (
97- Attr, Ctx, Domain, RemappedDeprecatedVersion))
98- DeprecatedVersion = RemappedDeprecatedVersion;
99-
91+ auto DeprecatedRange = Attr.getDeprecatedRange (Ctx);
10092 auto Message = Attr.getMessage ();
10193 auto NewName = Attr.getRename ();
10294 if (!isSoftDeprecated) {
10395 if (Message.empty () && NewName.empty ()) {
10496 getDiagnostics (severity, Out, diag::availability_deprecated, D,
10597 Attr.isPlatformSpecific (), Domain,
106- Attr. getDeprecated (). has_value (), DeprecatedVersion ,
98+ DeprecatedRange. hasMinimumVersion (), DeprecatedRange ,
10799 /* message*/ StringRef ());
108100 } else if (!Message.empty ()) {
109101 EncodedDiagnosticMessage EncodedMessage (Message);
110102 getDiagnostics (severity, Out, diag::availability_deprecated, D,
111103 Attr.isPlatformSpecific (), Domain,
112- Attr. getDeprecated (). has_value (), DeprecatedVersion ,
104+ DeprecatedRange. hasMinimumVersion (), DeprecatedRange ,
113105 EncodedMessage.Message );
114106 } else {
115107 getDiagnostics (severity, Out, diag::availability_deprecated_rename, D,
116108 Attr.isPlatformSpecific (), Domain,
117- Attr.getDeprecated ().has_value (), DeprecatedVersion, false ,
109+ DeprecatedRange.hasMinimumVersion (), DeprecatedRange,
110+ false ,
118111 /* ReplaceKind*/ 0 , NewName);
119112 }
120113 } else {
121114 // '100000' is used as a version number in API that will be deprecated in an
122115 // upcoming release. This number is to match the 'API_TO_BE_DEPRECATED'
123116 // macro defined in Darwin platforms.
124- static llvm::VersionTuple DISTANT_FUTURE_VESION ( 100000 );
125- bool isDistantFuture = DeprecatedVersion >= DISTANT_FUTURE_VESION ;
117+ bool isDistantFuture = DeprecatedRange. isContainedIn (
118+ AvailabilityRange ( llvm::VersionTuple ( 100000 ))) ;
126119
127120 if (Message.empty () && NewName.empty ()) {
128121 getDiagnostics (severity, Out, diag::ide_availability_softdeprecated, D,
129122 Attr.isPlatformSpecific (), Domain, !isDistantFuture,
130- DeprecatedVersion ,
123+ DeprecatedRange ,
131124 /* message*/ StringRef ());
132125 } else if (!Message.empty ()) {
133126 EncodedDiagnosticMessage EncodedMessage (Message);
134127 getDiagnostics (severity, Out, diag::ide_availability_softdeprecated, D,
135128 Attr.isPlatformSpecific (), Domain, !isDistantFuture,
136- DeprecatedVersion , EncodedMessage.Message );
129+ DeprecatedRange , EncodedMessage.Message );
137130 } else {
138131 getDiagnostics (severity, Out,
139132 diag::ide_availability_softdeprecated_rename, D,
140133 Attr.isPlatformSpecific (), Domain, !isDistantFuture,
141- DeprecatedVersion , NewName);
134+ DeprecatedRange , NewName);
142135 }
143136 }
144137 return false ;
0 commit comments