@@ -40,15 +40,15 @@ static bool constrainRange(AvailabilityRange &existing,
40
40
41
41
bool AvailabilityContext::Info::constrainWith (const Info &other) {
42
42
bool isConstrained = false ;
43
- isConstrained |= constrainRange (Range , other.Range );
43
+ isConstrained |= constrainRange (PlatformRange , other.PlatformRange );
44
44
isConstrained |= constrainUnavailability (other.UnavailableDomains );
45
45
isConstrained |= CONSTRAIN_BOOL (IsDeprecated, other.IsDeprecated );
46
46
47
47
return isConstrained;
48
48
}
49
49
50
50
bool AvailabilityContext::Info::constrainWith (
51
- const DeclAvailabilityConstraints &constraints, ASTContext &ctx) {
51
+ const DeclAvailabilityConstraints &constraints, const ASTContext &ctx) {
52
52
bool isConstrained = false ;
53
53
54
54
for (auto constraint : constraints) {
@@ -57,14 +57,15 @@ bool AvailabilityContext::Info::constrainWith(
57
57
switch (constraint.getReason ()) {
58
58
case AvailabilityConstraint::Reason::UnconditionallyUnavailable:
59
59
case AvailabilityConstraint::Reason::Obsoleted:
60
- case AvailabilityConstraint::Reason::IntroducedInLaterVersion :
60
+ case AvailabilityConstraint::Reason::UnavailableForDeployment :
61
61
isConstrained |= constrainUnavailability (domain);
62
62
break ;
63
- case AvailabilityConstraint::Reason::IntroducedInLaterDynamicVersion :
63
+ case AvailabilityConstraint::Reason::PotentiallyUnavailable :
64
64
// FIXME: [availability] Support versioning for other kinds of domains.
65
65
DEBUG_ASSERT (domain.isPlatform ());
66
66
if (domain.isPlatform ())
67
- isConstrained |= constrainRange (Range, attr.getIntroducedRange (ctx));
67
+ isConstrained |=
68
+ constrainRange (PlatformRange, attr.getIntroducedRange (ctx));
68
69
break ;
69
70
}
70
71
}
@@ -121,7 +122,7 @@ bool AvailabilityContext::Info::constrainUnavailability(
121
122
122
123
bool AvailabilityContext::Info::isContainedIn (const Info &other) const {
123
124
// The available versions range be the same or smaller.
124
- if (!Range .isContainedIn (other.Range ))
125
+ if (!PlatformRange .isContainedIn (other.PlatformRange ))
125
126
return false ;
126
127
127
128
// Every unavailable domain in the other context should be contained in some
@@ -147,15 +148,15 @@ bool AvailabilityContext::Info::isContainedIn(const Info &other) const {
147
148
}
148
149
149
150
void AvailabilityContext::Info::Profile (llvm::FoldingSetNodeID &ID) const {
150
- Range .getRawVersionRange ().Profile (ID);
151
+ PlatformRange .getRawVersionRange ().Profile (ID);
151
152
ID.AddInteger (UnavailableDomains.size ());
152
153
for (auto domain : UnavailableDomains) {
153
154
domain.Profile (ID);
154
155
}
155
156
ID.AddBoolean (IsDeprecated);
156
157
}
157
158
158
- bool AvailabilityContext::Info::verify (ASTContext &ctx) const {
159
+ bool AvailabilityContext::Info::verify (const ASTContext &ctx) const {
159
160
// Unavailable domains must be sorted to ensure folding set node lookups yield
160
161
// consistent results.
161
162
if (!llvm::is_sorted (UnavailableDomains,
@@ -167,24 +168,26 @@ bool AvailabilityContext::Info::verify(ASTContext &ctx) const {
167
168
168
169
AvailabilityContext
169
170
AvailabilityContext::forPlatformRange (const AvailabilityRange &range,
170
- ASTContext &ctx) {
171
+ const ASTContext &ctx) {
171
172
Info info{range, /* UnavailableDomains*/ {},
172
173
/* IsDeprecated*/ false };
173
174
return AvailabilityContext (Storage::get (info, ctx));
174
175
}
175
176
176
- AvailabilityContext AvailabilityContext::forInliningTarget (ASTContext &ctx) {
177
+ AvailabilityContext
178
+ AvailabilityContext::forInliningTarget (const ASTContext &ctx) {
177
179
return AvailabilityContext::forPlatformRange (
178
180
AvailabilityRange::forInliningTarget (ctx), ctx);
179
181
}
180
182
181
- AvailabilityContext AvailabilityContext::forDeploymentTarget (ASTContext &ctx) {
183
+ AvailabilityContext
184
+ AvailabilityContext::forDeploymentTarget (const ASTContext &ctx) {
182
185
return AvailabilityContext::forPlatformRange (
183
186
AvailabilityRange::forDeploymentTarget (ctx), ctx);
184
187
}
185
188
186
189
AvailabilityRange AvailabilityContext::getPlatformRange () const {
187
- return storage->info .Range ;
190
+ return storage->info .PlatformRange ;
188
191
}
189
192
190
193
bool AvailabilityContext::isUnavailable () const {
@@ -205,7 +208,7 @@ bool AvailabilityContext::isDeprecated() const {
205
208
}
206
209
207
210
void AvailabilityContext::constrainWithContext (const AvailabilityContext &other,
208
- ASTContext &ctx) {
211
+ const ASTContext &ctx) {
209
212
bool isConstrained = false ;
210
213
211
214
Info info{storage->info };
@@ -218,17 +221,17 @@ void AvailabilityContext::constrainWithContext(const AvailabilityContext &other,
218
221
}
219
222
220
223
void AvailabilityContext::constrainWithPlatformRange (
221
- const AvailabilityRange &platformRange, ASTContext &ctx) {
224
+ const AvailabilityRange &platformRange, const ASTContext &ctx) {
222
225
223
226
Info info{storage->info };
224
- if (!constrainRange (info.Range , platformRange))
227
+ if (!constrainRange (info.PlatformRange , platformRange))
225
228
return ;
226
229
227
230
storage = Storage::get (info, ctx);
228
231
}
229
232
230
233
void AvailabilityContext::constrainWithUnavailableDomain (
231
- AvailabilityDomain domain, ASTContext &ctx) {
234
+ AvailabilityDomain domain, const ASTContext &ctx) {
232
235
Info info{storage->info };
233
236
if (!info.constrainUnavailability (domain))
234
237
return ;
@@ -251,7 +254,7 @@ void AvailabilityContext::constrainWithDeclAndPlatformRange(
251
254
swift::getAvailabilityConstraintsForDecl (decl, *this , flags);
252
255
isConstrained |= info.constrainWith (constraints, decl->getASTContext ());
253
256
isConstrained |= CONSTRAIN_BOOL (info.IsDeprecated , decl->isDeprecated ());
254
- isConstrained |= constrainRange (info.Range , platformRange);
257
+ isConstrained |= constrainRange (info.PlatformRange , platformRange);
255
258
256
259
if (!isConstrained)
257
260
return ;
@@ -289,6 +292,6 @@ void AvailabilityContext::print(llvm::raw_ostream &os) const {
289
292
290
293
void AvailabilityContext::dump () const { print (llvm::errs ()); }
291
294
292
- bool AvailabilityContext::verify (ASTContext &ctx) const {
295
+ bool AvailabilityContext::verify (const ASTContext &ctx) const {
293
296
return storage->info .verify (ctx);
294
297
}
0 commit comments