Browse Source

Require typed throws.

Jon Shier 1 year ago
parent
commit
eef15cb7b3

+ 5 - 0
Alamofire.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict/>
+</plist>

+ 3 - 3
Source/Core/Session.swift

@@ -461,7 +461,7 @@ open class Session {
         return request
     }
 
-    #if canImport(Darwin) && !canImport(FoundationNetworking) // Only Apple platforms support URLSessionWebSocketTask.
+    #if canImport(Darwin) && !canImport(FoundationNetworking) && hasFeature(TypedThrows) // Only Apple platforms support URLSessionWebSocketTask.
     @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
     @_spi(WebSocket) open func webSocketRequest(
         to url: URLConvertible,
@@ -1071,7 +1071,7 @@ open class Session {
                 case let r as DownloadRequest: self.performDownloadRequest(r)
                 case let r as DataStreamRequest: self.performDataStreamRequest(r)
                 default:
-                    #if canImport(Darwin) && !canImport(FoundationNetworking)
+                    #if canImport(Darwin) && !canImport(FoundationNetworking) && hasFeature(TypedThrows)
                     if #available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *),
                        let request = request as? WebSocketRequest {
                         self.performWebSocketRequest(request)
@@ -1098,7 +1098,7 @@ open class Session {
         performSetupOperations(for: request, convertible: request.convertible)
     }
 
-    #if canImport(Darwin) && !canImport(FoundationNetworking)
+    #if canImport(Darwin) && !canImport(FoundationNetworking) && hasFeature(TypedThrows)
     @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
     func performWebSocketRequest(_ request: WebSocketRequest) {
         dispatchPrecondition(condition: .onQueue(requestQueue))

+ 1 - 1
Source/Core/SessionDelegate.swift

@@ -279,7 +279,7 @@ extension SessionDelegate: URLSessionDataDelegate {
 
 // MARK: URLSessionWebSocketDelegate
 
-#if canImport(Darwin) && !canImport(FoundationNetworking)
+#if canImport(Darwin) && !canImport(FoundationNetworking) && hasFeature(TypedThrows)
 
 @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
 extension SessionDelegate: URLSessionWebSocketDelegate {

+ 1 - 1
Source/Core/WebSocketRequest.swift

@@ -22,7 +22,7 @@
 //  THE SOFTWARE.
 //
 
-#if canImport(Darwin) && !canImport(FoundationNetworking) // Only Apple platforms support URLSessionWebSocketTask.
+#if canImport(Darwin) && !canImport(FoundationNetworking) && hasFeature(TypedThrows) // Only Apple platforms support URLSessionWebSocketTask.
 
 import Foundation
 

+ 1 - 1
Source/Features/Concurrency.swift

@@ -757,7 +757,7 @@ extension DataStreamRequest {
     }
 }
 
-#if canImport(Darwin) && !canImport(FoundationNetworking) // Only Apple platforms support URLSessionWebSocketTask.
+#if canImport(Darwin) && !canImport(FoundationNetworking) && hasFeature(TypedThrows) // Only Apple platforms support URLSessionWebSocketTask.
 // - MARK: WebSocketTask
 
 @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)

+ 1 - 1
Tests/ConcurrencyTests.swift

@@ -759,7 +759,7 @@ final class UploadConcurrencyTests: BaseTestCase {
 }
 #endif
 
-#if canImport(Darwin) && !canImport(FoundationNetworking) && swift(>=5.8)
+#if canImport(Darwin) && !canImport(FoundationNetworking) && swift(>=5.8) && hasFeature(TypedThrows)
 @_spi(WebSocket) import Alamofire
 
 @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)

+ 26 - 26
Tests/WebSocketTests.swift

@@ -6,7 +6,7 @@
 //  Copyright © 2021 Alamofire. All rights reserved.
 //
 
-#if canImport(Darwin) && !canImport(FoundationNetworking) // Only Apple platforms support URLSessionWebSocketTask.
+#if canImport(Darwin) && !canImport(FoundationNetworking) && hasFeature(TypedThrows) // Only Apple platforms support URLSessionWebSocketTask.
 
 @_spi(WebSocket) import Alamofire
 import Foundation
@@ -700,31 +700,31 @@ extension WebSocketRequest {
     }
 }
 
-@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
-extension URLSessionWebSocketTask.Message: Equatable {
-    public static func ==(lhs: URLSessionWebSocketTask.Message, rhs: URLSessionWebSocketTask.Message) -> Bool {
-        switch (lhs, rhs) {
-        case let (.string(left), .string(right)):
-            return left == right
-        case let (.data(left), .data(right)):
-            return left == right
-        default:
-            return false
-        }
-    }
-
-    var string: String? {
-        guard case let .string(string) = self else { return nil }
-
-        return string
-    }
-
-    var data: Data? {
-        guard case let .data(data) = self else { return nil }
-
-        return data
-    }
-}
+//@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
+//extension URLSessionWebSocketTask.Message: Equatable {
+//    public static func ==(lhs: URLSessionWebSocketTask.Message, rhs: URLSessionWebSocketTask.Message) -> Bool {
+//        switch (lhs, rhs) {
+//        case let (.string(left), .string(right)):
+//            return left == right
+//        case let (.data(left), .data(right)):
+//            return left == right
+//        default:
+//            return false
+//        }
+//    }
+//
+//    var string: String? {
+//        guard case let .string(string) = self else { return nil }
+//
+//        return string
+//    }
+//
+//    var data: Data? {
+//        guard case let .data(data) = self else { return nil }
+//
+//        return data
+//    }
+//}
 
 extension Session {
     @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)