Skip to content

Commit cedb4d9

Browse files
committed
AST: Move AvailabilityConstraint implementation to a separate file.
1 parent 4f5b614 commit cedb4d9

File tree

4 files changed

+55
-39
lines changed

4 files changed

+55
-39
lines changed

include/swift/AST/AvailabilityConstraint.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#ifndef SWIFT_AST_AVAILABILITY_CONSTRAINT_H
1818
#define SWIFT_AST_AVAILABILITY_CONSTRAINT_H
1919

20+
#include "swift/AST/Attr.h"
2021
#include "swift/AST/AvailabilityDomain.h"
2122
#include "swift/AST/AvailabilityRange.h"
2223
#include "swift/AST/PlatformKind.h"
@@ -25,7 +26,6 @@
2526
namespace swift {
2627

2728
class ASTContext;
28-
class AvailableAttr;
2929

3030
/// Represents the reason a declaration could be considered unavailable in a
3131
/// certain context.

lib/AST/Availability.cpp

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
#include "swift/AST/ASTContext.h"
1818
#include "swift/AST/Attr.h"
19-
#include "swift/AST/AvailabilityConstraint.h"
2019
#include "swift/AST/AvailabilityDomain.h"
2120
#include "swift/AST/AvailabilityInference.h"
2221
#include "swift/AST/AvailabilityRange.h"
@@ -67,43 +66,6 @@ AvailabilityRange AvailabilityRange::forRuntimeTarget(const ASTContext &Ctx) {
6766
return AvailabilityRange(VersionRange::allGTE(Ctx.LangOpts.RuntimeVersion));
6867
}
6968

70-
PlatformKind AvailabilityConstraint::getPlatform() const {
71-
return getAttr().getPlatform();
72-
}
73-
74-
std::optional<AvailabilityRange>
75-
AvailabilityConstraint::getRequiredNewerAvailabilityRange(
76-
ASTContext &ctx) const {
77-
switch (getKind()) {
78-
case Kind::AlwaysUnavailable:
79-
case Kind::RequiresVersion:
80-
case Kind::Obsoleted:
81-
return std::nullopt;
82-
case Kind::IntroducedInNewerVersion:
83-
return getAttr().getIntroducedRange(ctx);
84-
}
85-
}
86-
87-
bool AvailabilityConstraint::isConditionallySatisfiable() const {
88-
switch (getKind()) {
89-
case Kind::AlwaysUnavailable:
90-
case Kind::RequiresVersion:
91-
case Kind::Obsoleted:
92-
return false;
93-
case Kind::IntroducedInNewerVersion:
94-
return true;
95-
}
96-
}
97-
98-
bool AvailabilityConstraint::isActiveForRuntimeQueries(ASTContext &ctx) const {
99-
if (getAttr().getPlatform() == PlatformKind::none)
100-
return true;
101-
102-
return swift::isPlatformActive(getAttr().getPlatform(), ctx.LangOpts,
103-
/*forTargetVariant=*/false,
104-
/*forRuntimeQuery=*/true);
105-
}
106-
10769
namespace {
10870

10971
/// The inferred availability required to access a group of declarations

lib/AST/AvailabilityConstraint.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
//===--- AvailabilityConstraint.cpp - Swift Availability Constraints ------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
#include "swift/AST/AvailabilityConstraint.h"
14+
#include "swift/AST/ASTContext.h"
15+
16+
using namespace swift;
17+
18+
PlatformKind AvailabilityConstraint::getPlatform() const {
19+
return getAttr().getPlatform();
20+
}
21+
22+
std::optional<AvailabilityRange>
23+
AvailabilityConstraint::getRequiredNewerAvailabilityRange(
24+
ASTContext &ctx) const {
25+
switch (getKind()) {
26+
case Kind::AlwaysUnavailable:
27+
case Kind::RequiresVersion:
28+
case Kind::Obsoleted:
29+
return std::nullopt;
30+
case Kind::IntroducedInNewerVersion:
31+
return getAttr().getIntroducedRange(ctx);
32+
}
33+
}
34+
35+
bool AvailabilityConstraint::isConditionallySatisfiable() const {
36+
switch (getKind()) {
37+
case Kind::AlwaysUnavailable:
38+
case Kind::RequiresVersion:
39+
case Kind::Obsoleted:
40+
return false;
41+
case Kind::IntroducedInNewerVersion:
42+
return true;
43+
}
44+
}
45+
46+
bool AvailabilityConstraint::isActiveForRuntimeQueries(ASTContext &ctx) const {
47+
if (getAttr().getPlatform() == PlatformKind::none)
48+
return true;
49+
50+
return swift::isPlatformActive(getAttr().getPlatform(), ctx.LangOpts,
51+
/*forTargetVariant=*/false,
52+
/*forRuntimeQuery=*/true);
53+
}

lib/AST/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ add_swift_host_library(swiftAST STATIC
2727
Attr.cpp
2828
AutoDiff.cpp
2929
Availability.cpp
30+
AvailabilityConstraint.cpp
3031
AvailabilityContext.cpp
3132
AvailabilityDomain.cpp
3233
AvailabilityScope.cpp

0 commit comments

Comments
 (0)