Skip to content

Commit 8a497f2

Browse files
author
Ignacio Bonafonte
committed
Fixes compilation with swift 5.7
1 parent 2133b50 commit 8a497f2

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

Sources/Instrumentation/URLSession/URLSessionInstrumentation.swift

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,23 @@ public class URLSessionInstrumentation {
4848
}
4949

5050
private func injectInNSURLClasses() {
51+
#if swift(<5.7)
5152
let selectors = [
5253
#selector(URLSessionDataDelegate.urlSession(_:dataTask:didReceive:)),
5354
#selector(URLSessionDataDelegate.urlSession(_:dataTask:didReceive:completionHandler:)),
5455
#selector(URLSessionDataDelegate.urlSession(_:task:didCompleteWithError:)),
5556
#selector(URLSessionDataDelegate.urlSession(_:dataTask:didBecome:)! as (URLSessionDataDelegate) -> (URLSession, URLSessionDataTask, URLSessionDownloadTask) -> Void),
5657
#selector(URLSessionDataDelegate.urlSession(_:dataTask:didBecome:)! as (URLSessionDataDelegate) -> (URLSession, URLSessionDataTask, URLSessionStreamTask) -> Void)
5758
]
58-
59+
#else
60+
let selectors = [
61+
#selector(URLSessionDataDelegate.urlSession(_:dataTask:didReceive:)),
62+
#selector(URLSessionDataDelegate.urlSession(_:dataTask:didReceive:completionHandler:)),
63+
#selector(URLSessionDataDelegate.urlSession(_:task:didCompleteWithError:)),
64+
#selector(URLSessionDataDelegate.urlSession(_:dataTask:didBecome:) as (URLSessionDataDelegate) -> ((URLSession, URLSessionDataTask, URLSessionDownloadTask) -> Void)?),
65+
#selector(URLSessionDataDelegate.urlSession(_:dataTask:didBecome:) as (URLSessionDataDelegate) -> ((URLSession, URLSessionDataTask, URLSessionStreamTask) -> Void)?)
66+
]
67+
#endif
5968
let classes = InstrumentationUtils.objc_getClassList()
6069
classes.forEach {
6170
guard $0 != Self.self else { return }
@@ -242,7 +251,7 @@ public class URLSessionInstrumentation {
242251

243252
if let request = argument as? URLRequest, objc_getAssociatedObject(argument, &idKey) == nil {
244253
let instrumentedRequest = URLSessionLogger.processAndLogRequest(request, sessionTaskId: sessionTaskId, instrumentation: self, shouldInjectHeaders: true)
245-
task = castedIMP(session, selector, instrumentedRequest ?? request, completionBlock)
254+
task = castedIMP(session, selector, instrumentedRequest ?? request, completionBlock)
246255
} else {
247256
task = castedIMP(session, selector, argument, completionBlock)
248257
if objc_getAssociatedObject(argument, &idKey) == nil,
@@ -457,7 +466,11 @@ public class URLSessionInstrumentation {
457466
}
458467

459468
private func injectDataTaskDidBecomeDownloadTaskIntoDelegateClass(cls: AnyClass) {
469+
#if swift(<5.7)
460470
let selector = #selector(URLSessionDataDelegate.urlSession(_:dataTask:didBecome:)! as (URLSessionDataDelegate) -> (URLSession, URLSessionDataTask, URLSessionDownloadTask) -> Void)
471+
#else
472+
let selector = #selector(URLSessionDataDelegate.urlSession(_:dataTask:didBecome:) as (URLSessionDataDelegate) -> ((URLSession, URLSessionDataTask, URLSessionDownloadTask) -> Void)?)
473+
#endif
461474
guard let original = class_getInstanceMethod(cls, selector) else {
462475
return
463476
}

0 commit comments

Comments
 (0)