From 21347243d54c5b94fb19cf3e39a607dbb657c62b Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Wed, 19 Feb 2025 13:06:08 -0600 Subject: [PATCH] Annotate existentials with `any` prefix keyword --- .../PacketTunnelProvider.swift | 10 +++++----- ios/NebulaNetworkExtension/Site.swift | 6 +++--- ios/NebulaNetworkExtension/SiteList.swift | 6 +++--- ios/Runner/AppDelegate.swift | 4 ++-- ios/Runner/DNUpdate.swift | 2 +- ios/Runner/Sites.swift | 12 ++++++------ 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/ios/NebulaNetworkExtension/PacketTunnelProvider.swift b/ios/NebulaNetworkExtension/PacketTunnelProvider.swift index 887693d..aa01351 100644 --- a/ios/NebulaNetworkExtension/PacketTunnelProvider.swift +++ b/ios/NebulaNetworkExtension/PacketTunnelProvider.swift @@ -208,7 +208,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 @@ -249,25 +249,25 @@ 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 a4ac9fa..44fc846 100644 --- a/ios/NebulaNetworkExtension/Site.swift +++ b/ios/NebulaNetworkExtension/Site.swift @@ -456,7 +456,7 @@ struct IncomingSite: Codable { return try encoder.encode(config) } - func save(manager: NETunnelProviderManager?, saveToManager: Bool = true, callback: @escaping (Error?) -> Void) { + func save(manager: NETunnelProviderManager?, saveToManager: Bool = true, callback: @escaping ((any Error)?) -> Void) { let configPath: URL do { @@ -502,7 +502,7 @@ struct IncomingSite: Codable { #endif } - private func saveToManager(manager: NETunnelProviderManager?, callback: @escaping (Error?) -> Void) { + private func saveToManager(manager: NETunnelProviderManager?, callback: @escaping ((any Error)?) -> Void) { if manager != nil { // We need to refresh our settings to properly update config manager?.loadFromPreferences { error in @@ -518,7 +518,7 @@ struct IncomingSite: Codable { return finishSaveToManager(manager: NETunnelProviderManager(), callback: callback) } - private func finishSaveToManager(manager: NETunnelProviderManager, callback: @escaping (Error?) -> Void) { + private func finishSaveToManager(manager: NETunnelProviderManager, callback: @escaping ((any Error)?) -> Void) { // Stuff our details in the protocol let proto = manager.protocolConfiguration as? NETunnelProviderProtocol ?? NETunnelProviderProtocol() proto.providerBundleIdentifier = "net.defined.mobileNebula.NebulaNetworkExtension" diff --git a/ios/NebulaNetworkExtension/SiteList.swift b/ios/NebulaNetworkExtension/SiteList.swift index ec2de4d..64f11d1 100644 --- a/ios/NebulaNetworkExtension/SiteList.swift +++ b/ios/NebulaNetworkExtension/SiteList.swift @@ -45,7 +45,7 @@ class SiteList { return try getSiteDir(id: id, create: createDir).appendingPathComponent("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 { @@ -63,7 +63,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]() @@ -91,7 +91,7 @@ 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 f8e4c14..bc3ddbd 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -278,11 +278,11 @@ 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) -> FlutterError { +func NoArgumentsError(message: String? = "no arguments were provided or could not be deserialized", 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 571874e..4ea7357 100644 --- a/ios/Runner/DNUpdate.swift +++ b/ios/Runner/DNUpdate.swift @@ -94,7 +94,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 9b97d4c..eccb4d4 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 = 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) configFd = open(configPath.path, O_EVTONLY)