Skip to content

Commit 1bfd367

Browse files
committed
AST: Build scopes for if #available queries on custom availability domains.
Resolves rdar://138441298 and rdar://138441307.
1 parent 702eda6 commit 1bfd367

9 files changed

+380
-151
lines changed

include/swift/AST/AvailabilityContext.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,6 @@ class AvailabilityContext {
104104
void constrainWithPlatformRange(const AvailabilityRange &range,
105105
const ASTContext &ctx);
106106

107-
/// Expand the platform version range to contain `range`.
108-
void unionWithPlatformRange(const AvailabilityRange &range,
109-
const ASTContext &ctx);
110-
111107
/// Constrain the available range for `domain` by `range`.
112108
void constrainWithAvailabilityRange(const AvailabilityRange &range,
113109
AvailabilityDomain domain,

include/swift/AST/AvailabilityContextStorage.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ class AvailabilityContext::DomainInfo final {
4444
bool isUnavailable() const { return range.isKnownUnreachable(); }
4545

4646
bool constrainRange(const AvailabilityRange &range);
47-
bool unionRange(const AvailabilityRange &range);
4847

4948
void Profile(llvm::FoldingSetNodeID &ID) const {
5049
ID.AddPointer(domain.getOpaqueValue());

lib/AST/AvailabilityContext.cpp

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,6 @@ static bool constrainRange(AvailabilityRange &existing,
4646
return true;
4747
}
4848

49-
static bool unionRange(AvailabilityRange &existing,
50-
const AvailabilityRange &other) {
51-
if (!existing.isContainedIn(other))
52-
return false;
53-
54-
existing = other;
55-
return true;
56-
}
57-
5849
/// Returns true if `domainInfos` will be constrained by merging the domain
5950
/// availability represented by `otherDomainInfo`. Additionally, this function
6051
/// has a couple of side-effects:
@@ -145,11 +136,6 @@ bool AvailabilityContext::DomainInfo::constrainRange(
145136
return ::constrainRange(range, otherRange);
146137
}
147138

148-
bool AvailabilityContext::DomainInfo::unionRange(
149-
const AvailabilityRange &otherRange) {
150-
return ::unionRange(range, otherRange);
151-
}
152-
153139
AvailabilityContext
154140
AvailabilityContext::forPlatformRange(const AvailabilityRange &range,
155141
const ASTContext &ctx) {
@@ -298,18 +284,6 @@ void AvailabilityContext::constrainWithPlatformRange(
298284
storage->getDomainInfos(), ctx);
299285
}
300286

301-
void AvailabilityContext::unionWithPlatformRange(const AvailabilityRange &range,
302-
const ASTContext &ctx) {
303-
auto platformRange = storage->platformRange;
304-
if (!unionRange(platformRange, range))
305-
return;
306-
307-
// FIXME: [availability] Should this remove any unavailable platform domains?
308-
309-
storage = Storage::get(platformRange, storage->isDeprecated,
310-
storage->getDomainInfos(), ctx);
311-
}
312-
313287
void AvailabilityContext::constrainWithAvailabilityRange(
314288
const AvailabilityRange &range, AvailabilityDomain domain,
315289
const ASTContext &ctx) {

0 commit comments

Comments
 (0)