From ace02df624bcee32672b9d2fe7ef52ef3f940a87 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:09:28 -0600 Subject: [PATCH 01/13] Specify Swift Language Version 5 --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index a455d67d..28d9bad9 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -563,6 +563,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -772,6 +773,7 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -825,6 +827,7 @@ SUPPORTED_PLATFORMS = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; From ecc04ad83f803cf680879cdf32a67920bec1cb17 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:10:34 -0600 Subject: [PATCH 02/13] Enable `GlobalConcurrency` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 28d9bad9..a5582b34 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -563,6 +563,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; + SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -773,6 +774,7 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -827,6 +829,7 @@ SUPPORTED_PLATFORMS = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; From 65de0b43ce0d70b4f455706a4a55b62c7f2ba908 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:11:09 -0600 Subject: [PATCH 03/13] Enable `InferSendableFromCaptures` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index a5582b34..eb01f130 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -564,6 +564,7 @@ SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; + SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -775,6 +776,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; + SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -830,6 +832,7 @@ SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; + SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; From e052ba3282a70373acdad0c323b1f2c069df646b Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:12:05 -0600 Subject: [PATCH 04/13] Enable `IsolatedDefaultValues` swift feature --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index eb01f130..30053477 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -565,6 +565,7 @@ SUPPORTED_PLATFORMS = iphoneos; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; + SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -777,6 +778,7 @@ SDKROOT = iphoneos; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; + SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -833,6 +835,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; + SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; From 070085694d974cbbb7d78076a54b4e1b07a12640 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:12:31 -0600 Subject: [PATCH 05/13] Enable `ImplicitOpenExistentials` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 30053477..f233c297 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -564,6 +564,7 @@ SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; + SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; @@ -777,6 +778,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; + SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; @@ -834,6 +836,7 @@ SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; + SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; From 7d79ae019e14cd9e330402d9c09d32135cae4921 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:13:03 -0600 Subject: [PATCH 06/13] Enable `DeprecateApplicationMain` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index f233c297..fae3175a 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -563,6 +563,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; + SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; @@ -777,6 +778,7 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; @@ -835,6 +837,7 @@ SUPPORTED_PLATFORMS = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; From 686178ae12313829542c50d2fff344fe02de87f8 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:13:27 -0600 Subject: [PATCH 07/13] Enable `ForwardTrailingClosures` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index fae3175a..664d494b 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -564,6 +564,7 @@ SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; + SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; @@ -779,6 +780,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; + SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; @@ -838,6 +840,7 @@ SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; + SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; From 513d1c49653f5093ecc5af12e4a8b607cefb96c2 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:13:49 -0600 Subject: [PATCH 08/13] Enable `ConciseMagicFile` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 664d494b..a174c3ef 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -563,6 +563,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; + SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; @@ -779,6 +780,7 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; @@ -839,6 +841,7 @@ SUPPORTED_PLATFORMS = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; From 0e4faa0a65fb3d18ee8a855d6d288a677e450d26 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:14:09 -0600 Subject: [PATCH 09/13] Enable `ImportOBJCForwardDeclarations` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index a174c3ef..dcb13ea2 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -568,6 +568,7 @@ SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; + SWIFT_UPCOMING_FEATURE_IMPORT_OBJC_FORWARD_DECLS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; @@ -785,6 +786,7 @@ SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; + SWIFT_UPCOMING_FEATURE_IMPORT_OBJC_FORWARD_DECLS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; @@ -846,6 +848,7 @@ SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; + SWIFT_UPCOMING_FEATURE_IMPORT_OBJC_FORWARD_DECLS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; SWIFT_VERSION = 5.0; From 35dc3f5ea506fa1a591e0f404f325b88c8a49765 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:18:35 -0600 Subject: [PATCH 10/13] Enable `DisableOutwardActorInference` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index dcb13ea2..c29b9358 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -565,6 +565,7 @@ SUPPORTED_PLATFORMS = iphoneos; SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; + SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; @@ -783,6 +784,7 @@ SDKROOT = iphoneos; SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; + SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; @@ -845,6 +847,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; + SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; From 0116816a030cc6ae73c006affb25743a9228f4eb Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:19:13 -0600 Subject: [PATCH 11/13] Enable `ExistentialAny` swift feature flag --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index c29b9358..0d5aaea6 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -566,6 +566,7 @@ SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; + SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; @@ -785,6 +786,7 @@ SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; + SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; @@ -848,6 +850,7 @@ SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; + SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES; SWIFT_UPCOMING_FEATURE_FORWARD_TRAILING_CLOSURES = YES; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = YES; SWIFT_UPCOMING_FEATURE_IMPLICIT_OPEN_EXISTENTIALS = YES; From 1b3ab4db764c00b1a3610712dd22218b620a681c Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:19:39 -0600 Subject: [PATCH 12/13] Annotate existentials with `any` prefix keyword --- .../PacketTunnelProvider.swift | 10 +++++----- ios/NebulaNetworkExtension/Site.swift | 6 +++--- ios/NebulaNetworkExtension/SiteList.swift | 8 +++++--- ios/Runner/AppDelegate.swift | 4 ++-- ios/Runner/DNUpdate.swift | 2 +- ios/Runner/Sites.swift | 12 ++++++------ 6 files changed, 22 insertions(+), 20 deletions(-) diff --git a/ios/NebulaNetworkExtension/PacketTunnelProvider.swift b/ios/NebulaNetworkExtension/PacketTunnelProvider.swift index df48d932..e047f1ed 100644 --- a/ios/NebulaNetworkExtension/PacketTunnelProvider.swift +++ b/ios/NebulaNetworkExtension/PacketTunnelProvider.swift @@ -219,7 +219,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { return nil } - var error: Error? + var error: (any Error)? var data: JSON? // start command has special treatment due to needing to call two completers @@ -264,27 +264,27 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } } - private func listHostmap(pending: Bool) -> (JSON?, Error?) { + private func listHostmap(pending: Bool) -> (JSON?, (any Error)?) { var err: NSError? let res = nebula!.listHostmap(pending, error: &err) return (JSON(res), err) } - private func getHostInfo(args: JSON) -> (JSON?, Error?) { + private func getHostInfo(args: JSON) -> (JSON?, (any Error)?) { var err: NSError? let res = nebula!.getHostInfo( byVpnIp: args["vpnIp"].string, pending: args["pending"].boolValue, error: &err) return (JSON(res), err) } - private func setRemoteForTunnel(args: JSON) -> (JSON?, Error?) { + private func setRemoteForTunnel(args: JSON) -> (JSON?, (any Error)?) { var err: NSError? let res = nebula!.setRemoteForTunnel( args["vpnIp"].string, addr: args["addr"].string, error: &err) return (JSON(res), err) } - private func closeTunnel(args: JSON) -> (JSON?, Error?) { + private func closeTunnel(args: JSON) -> (JSON?, (any Error)?) { let res = nebula!.closeTunnel(args["vpnIp"].string) return (JSON(res), nil) } diff --git a/ios/NebulaNetworkExtension/Site.swift b/ios/NebulaNetworkExtension/Site.swift index 3efbe889..52bfec56 100644 --- a/ios/NebulaNetworkExtension/Site.swift +++ b/ios/NebulaNetworkExtension/Site.swift @@ -458,7 +458,7 @@ struct IncomingSite: Codable { func save( manager: NETunnelProviderManager?, saveToManager: Bool = true, - callback: @escaping (Error?) -> Void + callback: @escaping ((any Error)?) -> Void ) { let configPath: URL @@ -506,7 +506,7 @@ struct IncomingSite: Codable { } private func saveToManager( - manager: NETunnelProviderManager?, callback: @escaping (Error?) -> Void + manager: NETunnelProviderManager?, callback: @escaping ((any Error)?) -> Void ) { if manager != nil { // We need to refresh our settings to properly update config @@ -524,7 +524,7 @@ struct IncomingSite: Codable { } private func finishSaveToManager( - manager: NETunnelProviderManager, callback: @escaping (Error?) -> Void + manager: NETunnelProviderManager, callback: @escaping ((any Error)?) -> Void ) { // Stuff our details in the protocol let proto = diff --git a/ios/NebulaNetworkExtension/SiteList.swift b/ios/NebulaNetworkExtension/SiteList.swift index 471b338a..699e668f 100644 --- a/ios/NebulaNetworkExtension/SiteList.swift +++ b/ios/NebulaNetworkExtension/SiteList.swift @@ -49,7 +49,7 @@ class SiteList { "logs", isDirectory: false) } - init(completion: @escaping ([String: Site]?, Error?) -> Void) { + init(completion: @escaping ([String: Site]?, (any Error)?) -> Void) { #if targetEnvironment(simulator) SiteList.loadAllFromFS { sites, err in if sites != nil { @@ -67,7 +67,7 @@ class SiteList { #endif } - private static func loadAllFromFS(completion: @escaping ([String: Site]?, Error?) -> Void) { + private static func loadAllFromFS(completion: @escaping ([String: Site]?, (any Error)?) -> Void) { let fileManager = FileManager.default var siteDirs: [URL] var sites = [String: Site]() @@ -97,7 +97,9 @@ class SiteList { completion(sites, nil) } - private static func loadAllFromNETPM(completion: @escaping ([String: Site]?, Error?) -> Void) { + private static func loadAllFromNETPM( + completion: @escaping ([String: Site]?, (any Error)?) -> Void + ) { var sites = [String: Site]() // dispatchGroup is used to ensure we have migrated all sites before returning them diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 9528bbda..885fffcd 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -318,13 +318,13 @@ func MissingArgumentError(message: String, details: Any?) -> FlutterError { } } -func MissingArgumentError(message: String, details: Error? = nil) -> FlutterError { +func MissingArgumentError(message: String, details: (any Error)? = nil) -> FlutterError { return FlutterError(code: "missingArgument", message: message, details: details) } func NoArgumentsError( message: String? = "no arguments were provided or could not be deserialized", - details: Error? = nil + details: (any Error)? = nil ) -> FlutterError { return FlutterError(code: "noArguments", message: message, details: details) } diff --git a/ios/Runner/DNUpdate.swift b/ios/Runner/DNUpdate.swift index 9f7f2c11..c59652fa 100644 --- a/ios/Runner/DNUpdate.swift +++ b/ios/Runner/DNUpdate.swift @@ -100,7 +100,7 @@ class RepeatingTimer { self.timeInterval = timeInterval } - private lazy var timer: DispatchSourceTimer = { + private lazy var timer: any DispatchSourceTimer = { let t = DispatchSource.makeTimerSource() t.schedule(deadline: .now(), repeating: self.timeInterval) t.setEventHandler(handler: { [weak self] in diff --git a/ios/Runner/Sites.swift b/ios/Runner/Sites.swift index a477513c..ed7b198d 100644 --- a/ios/Runner/Sites.swift +++ b/ios/Runner/Sites.swift @@ -13,13 +13,13 @@ class SiteContainer { class Sites { private var containers = [String: SiteContainer]() - private var messenger: FlutterBinaryMessenger? + private var messenger: (any FlutterBinaryMessenger)? - init(messenger: FlutterBinaryMessenger?) { + init(messenger: (any FlutterBinaryMessenger)?) { self.messenger = messenger } - func loadSites(completion: @escaping ([String: Site]?, Error?) -> Void) { + func loadSites(completion: @escaping ([String: Site]?, (any Error)?) -> Void) { _ = SiteList { (sites, err) in if err != nil { return completion(nil, err) @@ -42,7 +42,7 @@ class Sites { } } - func deleteSite(id: String, callback: @escaping (Error?) -> Void) { + func deleteSite(id: String, callback: @escaping ((any Error)?) -> Void) { if let site = self.containers.removeValue(forKey: id) { _ = KeyChain.delete(key: "\(site.site.id).dnCredentials") _ = KeyChain.delete(key: "\(site.site.id).key") @@ -85,9 +85,9 @@ class SiteUpdater: NSObject, FlutterStreamHandler { private var notification: Any? public var startFunc: (() -> Void)? private var configFd: Int32? = nil - private var configObserver: DispatchSourceFileSystemObject? = nil + private var configObserver: (any DispatchSourceFileSystemObject)? = nil - init(messenger: FlutterBinaryMessenger, site: Site) { + init(messenger: any FlutterBinaryMessenger, site: Site) { do { let configPath = try SiteList.getSiteConfigFile(id: site.id, createDir: false) self.configFd = open(configPath.path, O_EVTONLY) From a3c598bf4b3a7f11fb98e4d4ede4c6eb14df4a25 Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Mon, 24 Feb 2025 18:21:23 -0600 Subject: [PATCH 13/13] Enable `RegionBasedIsolation` swift feature flag This adds two warnings to the build complaining about a sending closure. --- ios/Runner.xcodeproj/project.pbxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 0d5aaea6..a53cf3ea 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -573,6 +573,7 @@ SWIFT_UPCOMING_FEATURE_IMPORT_OBJC_FORWARD_DECLS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; + SWIFT_UPCOMING_FEATURE_REGION_BASED_ISOLATION = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -793,6 +794,7 @@ SWIFT_UPCOMING_FEATURE_IMPORT_OBJC_FORWARD_DECLS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; + SWIFT_UPCOMING_FEATURE_REGION_BASED_ISOLATION = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -857,6 +859,7 @@ SWIFT_UPCOMING_FEATURE_IMPORT_OBJC_FORWARD_DECLS = YES; SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; + SWIFT_UPCOMING_FEATURE_REGION_BASED_ISOLATION = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES;