@@ -246,9 +246,16 @@ AvailabilityContext ASTContext::getSwift50Availability() {
246246 return AvailabilityContext::alwaysAvailable ();
247247
248248 if (target.isMacOSX ()) {
249+ if (target.isAArch64 ())
250+ return AvailabilityContext::alwaysAvailable ();
251+
249252 return AvailabilityContext (
250253 VersionRange::allGTE (llvm::VersionTuple (10 ,14 ,4 )));
251254 } else if (target.isiOS ()) {
255+ if (target.isAArch64 () &&
256+ (target.isSimulatorEnvironment () || target.isMacCatalystEnvironment ()))
257+ return AvailabilityContext::alwaysAvailable ();
258+
252259 return AvailabilityContext (
253260 VersionRange::allGTE (llvm::VersionTuple (12 ,2 )));
254261 } else if (target.isWatchOS ()) {
@@ -274,9 +281,16 @@ AvailabilityContext ASTContext::getSwift51Availability() {
274281 return AvailabilityContext::alwaysAvailable ();
275282
276283 if (target.isMacOSX ()) {
284+ if (target.isAArch64 ())
285+ return AvailabilityContext::alwaysAvailable ();
286+
277287 return AvailabilityContext (
278288 VersionRange::allGTE (llvm::VersionTuple (10 ,15 ,0 )));
279289 } else if (target.isiOS ()) {
290+ if (target.isAArch64 () &&
291+ (target.isSimulatorEnvironment () || target.isMacCatalystEnvironment ()))
292+ return AvailabilityContext::alwaysAvailable ();
293+
280294 return AvailabilityContext (
281295 VersionRange::allGTE (llvm::VersionTuple (13 ,0 ,0 )));
282296 } else if (target.isWatchOS ()) {
@@ -301,18 +315,27 @@ AvailabilityContext ASTContext::getSwift52Availability() {
301315 if (target.getArchName () == " arm64e" )
302316 return AvailabilityContext::alwaysAvailable ();
303317
304- if (target.isMacOSX () ) {
318+ if (target.isMacOSX ()) {
319+ if (target.isAArch64 ())
320+ return AvailabilityContext::alwaysAvailable ();
321+
305322 return AvailabilityContext (
306- VersionRange::allGTE (llvm::VersionTuple (10 , 99 , 0 )));
323+ VersionRange::allGTE (llvm::VersionTuple (10 , 15 , 4 )));
307324 } else if (target.isiOS ()) {
325+ if (target.isAArch64 () &&
326+ (target.isSimulatorEnvironment () || target.isMacCatalystEnvironment ()))
327+ return AvailabilityContext::alwaysAvailable ();
328+
308329 return AvailabilityContext (
309- VersionRange::allGTE (llvm::VersionTuple (99 , 0 , 0 )));
330+ VersionRange::allGTE (llvm::VersionTuple (13 , 4 , 0 )));
310331 } else if (target.isWatchOS ()) {
332+ if (target.isArch64Bit ())
333+ return AvailabilityContext::alwaysAvailable ();
334+
311335 return AvailabilityContext (
312- VersionRange::allGTE (llvm::VersionTuple (9 , 99 , 0 )));
313- } else {
314- return AvailabilityContext::alwaysAvailable ();
336+ VersionRange::allGTE (llvm::VersionTuple (6 , 2 , 0 )));
315337 }
338+ return AvailabilityContext::alwaysAvailable ();
316339}
317340
318341AvailabilityContext ASTContext::getSwift53Availability () {
@@ -322,14 +345,26 @@ AvailabilityContext ASTContext::getSwift53Availability() {
322345 return AvailabilityContext::alwaysAvailable ();
323346
324347 if (target.isMacOSX () ) {
348+ if (target.isAArch64 ())
349+ return AvailabilityContext::alwaysAvailable ();
350+
351+ llvm::VersionTuple macOVersion53 (10 , 16 , 0 );
352+ macOVersion53 = canonicalizePlatformVersion (PlatformKind::OSX, macOVersion53);
325353 return AvailabilityContext (
326- VersionRange::allGTE (llvm::VersionTuple ( 10 , 99 , 0 ) ));
354+ VersionRange::allGTE (macOVersion53 ));
327355 } else if (target.isiOS ()) {
356+ if (target.isAArch64 () &&
357+ (target.isSimulatorEnvironment () || target.isMacCatalystEnvironment ()))
358+ return AvailabilityContext::alwaysAvailable ();
359+
328360 return AvailabilityContext (
329- VersionRange::allGTE (llvm::VersionTuple (99 , 0 , 0 )));
361+ VersionRange::allGTE (llvm::VersionTuple (14 , 0 , 0 )));
330362 } else if (target.isWatchOS ()) {
363+ if (target.isArch64Bit ())
364+ return AvailabilityContext::alwaysAvailable ();
365+
331366 return AvailabilityContext (
332- VersionRange::allGTE (llvm::VersionTuple (9 , 99 , 0 )));
367+ VersionRange::allGTE (llvm::VersionTuple (7 , 0 , 0 )));
333368 } else {
334369 return AvailabilityContext::alwaysAvailable ();
335370 }
@@ -340,7 +375,7 @@ AvailabilityContext ASTContext::getSwiftFutureAvailability() {
340375
341376 if (target.isMacOSX () ) {
342377 return AvailabilityContext (
343- VersionRange::allGTE (llvm::VersionTuple (10 , 99 , 0 )));
378+ VersionRange::allGTE (llvm::VersionTuple (99 , 99 , 0 )));
344379 } else if (target.isiOS ()) {
345380 return AvailabilityContext (
346381 VersionRange::allGTE (llvm::VersionTuple (99 , 0 , 0 )));
0 commit comments