@@ -295,21 +295,19 @@ static SourceRange getAvailabilityConditionVersionSourceRange(
295
295
}
296
296
297
297
static SourceRange
298
- getAvailabilityConditionVersionSourceRange (const DeclAttributes &DeclAttrs,
299
- PlatformKind Platform,
298
+ getAvailabilityConditionVersionSourceRange (const Decl *D, PlatformKind Platform,
300
299
const llvm::VersionTuple &Version) {
301
300
SourceRange Range;
302
- for (auto * Attr : DeclAttrs ) {
303
- if (auto *AA = dyn_cast<AvailableAttr>( Attr)) {
304
- if (AA-> Introduced . has_value () && AA-> Introduced .value () == Version &&
305
- AA-> getPlatform () == Platform) {
301
+ for (auto Attr : D-> getSemanticAvailableAttrs () ) {
302
+ if (Attr. getIntroduced (). has_value () &&
303
+ Attr. getIntroduced () .value () == Version &&
304
+ Attr. getPlatform () == Platform) {
306
305
307
- // More than one: return invalid range.
308
- if (Range.isValid ())
309
- return SourceRange ();
310
- else
311
- Range = AA->IntroducedRange ;
312
- }
306
+ // More than one: return invalid range.
307
+ if (Range.isValid ())
308
+ return SourceRange ();
309
+ else
310
+ Range = Attr.getParsedAttr ()->IntroducedRange ;
313
311
}
314
312
}
315
313
return Range;
@@ -319,8 +317,8 @@ SourceRange AvailabilityScope::getAvailabilityConditionVersionSourceRange(
319
317
PlatformKind Platform, const llvm::VersionTuple &Version) const {
320
318
switch (getReason ()) {
321
319
case Reason::Decl:
322
- return ::getAvailabilityConditionVersionSourceRange (
323
- Node. getAsDecl ()-> getAttrs (), Platform, Version);
320
+ return ::getAvailabilityConditionVersionSourceRange (Node. getAsDecl (),
321
+ Platform, Version);
324
322
325
323
case Reason::IfStmtThenBranch:
326
324
case Reason::IfStmtElseBranch:
0 commit comments