@@ -181,44 +181,58 @@ bool swift::isPlatformActive(PlatformKind Platform, const LangOptions &LangOpts,
181181 LangOpts.EnableAppExtensionRestrictions , ForRuntimeQuery);
182182}
183183
184- PlatformKind swift::targetPlatform (const LangOptions &LangOpts) {
185- if (LangOpts.Target .isMacOSX ()) {
186- return (LangOpts.EnableAppExtensionRestrictions
184+ static PlatformKind platformForTriple (const llvm::Triple &triple,
185+ bool enableAppExtensionRestrictions) {
186+ if (triple.isMacOSX ()) {
187+ return (enableAppExtensionRestrictions
187188 ? PlatformKind::macOSApplicationExtension
188189 : PlatformKind::macOS);
189190 }
190191
191- if (LangOpts. Target .isTvOS ()) {
192- return (LangOpts. EnableAppExtensionRestrictions
193- ? PlatformKind::tvOSApplicationExtension
194- : PlatformKind::tvOS);
192+ if (triple .isTvOS ()) {
193+ return (enableAppExtensionRestrictions
194+ ? PlatformKind::tvOSApplicationExtension
195+ : PlatformKind::tvOS);
195196 }
196197
197- if (LangOpts. Target .isWatchOS ()) {
198- return (LangOpts. EnableAppExtensionRestrictions
199- ? PlatformKind::watchOSApplicationExtension
200- : PlatformKind::watchOS);
198+ if (triple .isWatchOS ()) {
199+ return (enableAppExtensionRestrictions
200+ ? PlatformKind::watchOSApplicationExtension
201+ : PlatformKind::watchOS);
201202 }
202203
203- if (LangOpts. Target .isiOS ()) {
204- if (tripleIsMacCatalystEnvironment (LangOpts. Target ))
205- return (LangOpts. EnableAppExtensionRestrictions
204+ if (triple .isiOS ()) {
205+ if (tripleIsMacCatalystEnvironment (triple ))
206+ return (enableAppExtensionRestrictions
206207 ? PlatformKind::macCatalystApplicationExtension
207208 : PlatformKind::macCatalyst);
208- return (LangOpts. EnableAppExtensionRestrictions
209+ return (enableAppExtensionRestrictions
209210 ? PlatformKind::iOSApplicationExtension
210211 : PlatformKind::iOS);
211212 }
212213
213- if (LangOpts. Target .isXROS ()) {
214- return (LangOpts. EnableAppExtensionRestrictions
215- ? PlatformKind::visionOSApplicationExtension
216- : PlatformKind::visionOS);
214+ if (triple .isXROS ()) {
215+ return (enableAppExtensionRestrictions
216+ ? PlatformKind::visionOSApplicationExtension
217+ : PlatformKind::visionOS);
217218 }
218219
219220 return PlatformKind::none;
220221}
221222
223+ PlatformKind swift::targetPlatform (const LangOptions &LangOpts) {
224+ return platformForTriple (LangOpts.Target ,
225+ LangOpts.EnableAppExtensionRestrictions );
226+ }
227+
228+ PlatformKind swift::targetVariantPlatform (const LangOptions &LangOpts) {
229+ if (auto variant = LangOpts.TargetVariant )
230+ return platformForTriple (*LangOpts.TargetVariant ,
231+ LangOpts.EnableAppExtensionRestrictions );
232+
233+ return PlatformKind::none;
234+ }
235+
222236bool swift::inheritsAvailabilityFromPlatform (PlatformKind Child,
223237 PlatformKind Parent) {
224238 if (auto ChildPlatformBase = basePlatformForExtensionPlatform (Child)) {
0 commit comments