File tree Expand file tree Collapse file tree 2 files changed +25
-5
lines changed Expand file tree Collapse file tree 2 files changed +25
-5
lines changed Original file line number Diff line number Diff line change @@ -44,19 +44,28 @@ class AvailabilityContext {
44
44
45
45
AvailabilityContext (const Storage *info) : Info(info) { assert (info); };
46
46
47
- // / Retrieves a uniqued `AvailabilityContext` with the given platform
48
- // / availability parameters.
47
+ // / Retrieves an `AvailabilityContext` with the given platform availability
48
+ // / parameters.
49
49
static AvailabilityContext
50
50
get (const AvailabilityRange &platformAvailability,
51
51
std::optional<PlatformKind> unavailablePlatform, bool deprecated,
52
52
ASTContext &ctx);
53
53
54
54
public:
55
+ // / Retrieves an `AvailabilityContext` constrained by the given platform
56
+ // / availability range.
57
+ static AvailabilityContext forPlatformRange (const AvailabilityRange &range,
58
+ ASTContext &ctx);
59
+
55
60
// / Retrieves the maximally available `AvailabilityContext` for the
56
61
// / compilation. The platform availability range will be set to the minimum
57
62
// / inlining target (which may just be the deployment target).
58
63
static AvailabilityContext forInliningTarget (ASTContext &ctx);
59
64
65
+ // / Retrieves an `AvailabilityContext` with the platform availability range
66
+ // / set to the deployment target.
67
+ static AvailabilityContext forDeploymentTarget (ASTContext &ctx);
68
+
60
69
// / Returns the range of platform versions which may execute code in the
61
70
// / availability context, starting at its introduction version.
62
71
AvailabilityRange getPlatformRange () const ;
Original file line number Diff line number Diff line change @@ -124,15 +124,26 @@ void AvailabilityContext::Storage::Profile(llvm::FoldingSetNodeID &id) const {
124
124
Platform.Profile (id);
125
125
}
126
126
127
- AvailabilityContext AvailabilityContext::forInliningTarget (ASTContext &ctx) {
128
- PlatformInfo platformInfo{AvailabilityRange::forInliningTarget (ctx),
129
- PlatformKind::none,
127
+ AvailabilityContext
128
+ AvailabilityContext::forPlatformRange (const AvailabilityRange &range,
129
+ ASTContext &ctx) {
130
+ PlatformInfo platformInfo{range, PlatformKind::none,
130
131
/* IsUnavailable*/ false ,
131
132
/* IsUnavailableInEmbedded*/ false ,
132
133
/* IsDeprecated*/ false };
133
134
return AvailabilityContext (Storage::get (platformInfo, ctx));
134
135
}
135
136
137
+ AvailabilityContext AvailabilityContext::forInliningTarget (ASTContext &ctx) {
138
+ return AvailabilityContext::forPlatformRange (
139
+ AvailabilityRange::forInliningTarget (ctx), ctx);
140
+ }
141
+
142
+ AvailabilityContext AvailabilityContext::forDeploymentTarget (ASTContext &ctx) {
143
+ return AvailabilityContext::forPlatformRange (
144
+ AvailabilityRange::forDeploymentTarget (ctx), ctx);
145
+ }
146
+
136
147
AvailabilityContext
137
148
AvailabilityContext::get (const AvailabilityRange &platformAvailability,
138
149
std::optional<PlatformKind> unavailablePlatform,
You can’t perform that action at this time.
0 commit comments