Skip to content

Commit 56e5ca7

Browse files
committed
AST: Introduce AvailabilityDomain::isActivePlatform().
1 parent cce0296 commit 56e5ca7

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

include/swift/AST/AvailabilityDomain.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,10 @@ class AvailabilityDomain final {
217217
/// compilation context.
218218
bool isActive(const ASTContext &ctx) const;
219219

220+
/// Returns true if this domain is a platform domain and is considered active
221+
/// in the current compilation context.
222+
bool isActivePlatform(const ASTContext &ctx) const;
223+
220224
/// Returns the domain's minimum available range for type checking. For
221225
/// example, for the domain of the platform that compilation is targeting,
222226
/// this version is specified with the `-target` option. For the Swift

lib/AST/AvailabilityContext.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ AvailabilityContext::getAvailabilityRange(AvailabilityDomain domain,
237237
const ASTContext &ctx) const {
238238
DEBUG_ASSERT(domain.supportsContextRefinement());
239239

240-
if (domain.isActive(ctx) && domain.isPlatform())
240+
if (domain.isActivePlatform(ctx))
241241
return storage->platformRange;
242242

243243
for (auto domainInfo : storage->getDomainInfos()) {
@@ -315,7 +315,7 @@ void AvailabilityContext::constrainWithAvailabilityRange(
315315
const ASTContext &ctx) {
316316
DEBUG_ASSERT(domain.supportsContextRefinement());
317317

318-
if (domain.isActive(ctx) && domain.isPlatform()) {
318+
if (domain.isActivePlatform(ctx)) {
319319
constrainWithPlatformRange(range, ctx);
320320
return;
321321
}
@@ -371,7 +371,7 @@ void AvailabilityContext::constrainWithDeclAndPlatformRange(
371371
break;
372372
case AvailabilityConstraint::Reason::PotentiallyUnavailable:
373373
if (auto introducedRange = attr.getIntroducedRange(ctx)) {
374-
if (domain.isActive(ctx) && domain.isPlatform()) {
374+
if (domain.isActivePlatform(ctx)) {
375375
isConstrained |= constrainRange(platformRange, *introducedRange);
376376
} else {
377377
declDomainInfos.push_back({domain, *introducedRange});

lib/AST/AvailabilityDomain.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ bool AvailabilityDomain::isActive(const ASTContext &ctx) const {
100100
}
101101
}
102102

103+
bool AvailabilityDomain::isActivePlatform(const ASTContext &ctx) const {
104+
if (!isPlatform())
105+
return false;
106+
107+
return isActive(ctx);
108+
}
109+
103110
static std::optional<llvm::VersionTuple>
104111
getDeploymentVersion(const AvailabilityDomain &domain, const ASTContext &ctx) {
105112
switch (domain.getKind()) {

0 commit comments

Comments
 (0)