Skip to content

Commit da57ab3

Browse files
committed
[AST] Factor out a LangOptions-independent helper for isActivePlatform(). NFC.
This will be used in a later commit.
1 parent d0695fc commit da57ab3

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

lib/AST/PlatformKind.cpp

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,35 +56,43 @@ Optional<PlatformKind> swift::platformFromString(StringRef Name) {
5656
.Default(Optional<PlatformKind>());
5757
}
5858

59-
bool swift::isPlatformActive(PlatformKind Platform, LangOptions &LangOpts) {
59+
static bool isPlatformActiveForTarget(PlatformKind Platform,
60+
const llvm::Triple &Target,
61+
bool EnableAppExtensionRestrictions) {
6062
if (Platform == PlatformKind::none)
6163
return true;
6264

6365
if (Platform == PlatformKind::OSXApplicationExtension ||
6466
Platform == PlatformKind::iOSApplicationExtension)
65-
if (!LangOpts.EnableAppExtensionRestrictions)
67+
if (!EnableAppExtensionRestrictions)
6668
return false;
6769

6870
// FIXME: This is an awful way to get the current OS.
6971
switch (Platform) {
7072
case PlatformKind::OSX:
7173
case PlatformKind::OSXApplicationExtension:
72-
return LangOpts.Target.isMacOSX();
74+
return Target.isMacOSX();
7375
case PlatformKind::iOS:
7476
case PlatformKind::iOSApplicationExtension:
75-
return LangOpts.Target.isiOS() && !LangOpts.Target.isTvOS();
77+
return Target.isiOS() && !Target.isTvOS();
7678
case PlatformKind::tvOS:
7779
case PlatformKind::tvOSApplicationExtension:
78-
return LangOpts.Target.isTvOS();
80+
return Target.isTvOS();
7981
case PlatformKind::watchOS:
8082
case PlatformKind::watchOSApplicationExtension:
81-
return LangOpts.Target.isWatchOS();
83+
return Target.isWatchOS();
8284
case PlatformKind::none:
8385
llvm_unreachable("handled above");
8486
}
8587
llvm_unreachable("bad PlatformKind");
8688
}
8789

90+
bool swift::isPlatformActive(PlatformKind Platform, LangOptions &LangOpts) {
91+
llvm::Triple TT = LangOpts.Target;
92+
return isPlatformActiveForTarget(Platform, TT,
93+
LangOpts.EnableAppExtensionRestrictions);
94+
}
95+
8896
PlatformKind swift::targetPlatform(LangOptions &LangOpts) {
8997
if (LangOpts.Target.isMacOSX()) {
9098
return (LangOpts.EnableAppExtensionRestrictions

0 commit comments

Comments
 (0)