Initial prototype for Swift 6 mode

This commit is contained in:
John Estropia
2026-07-07 11:18:17 +09:00
parent 38ec439b18
commit 49f65601cd
71 changed files with 998 additions and 684 deletions
+11 -5
View File
@@ -36,7 +36,8 @@ extension Progress {
- parameter closure: the closure to execute on progress change
*/
@nonobjc
public func setProgressHandler(_ closure: ((_ progress: Progress) -> Void)?) {
@MainActor
public func setProgressHandler(_ closure: (@MainActor (_ progress: Progress) -> Void)?) {
self.progressObserver.progressHandler = closure
}
@@ -46,15 +47,19 @@ extension Progress {
private struct PropertyKeys {
static var progressObserver: Void?
static nonisolated(unsafe) var progressObserver: Void?
}
@nonobjc
@MainActor
private var progressObserver: ProgressObserver {
get {
let object: ProgressObserver? = Internals.getAssociatedObjectForKey(&PropertyKeys.progressObserver, inObject: self)
let object: ProgressObserver? = Internals.getAssociatedObjectForKey(
&PropertyKeys.progressObserver,
inObject: self
)
if let observer = object {
return observer
@@ -76,11 +81,12 @@ extension Progress {
// MARK: - ProgressObserver
@objc
private final class ProgressObserver: NSObject {
private final class ProgressObserver: NSObject, @unchecked Sendable {
private unowned let progress: Progress
fileprivate var progressHandler: ((_ progress: Progress) -> Void)? {
@MainActor
fileprivate var progressHandler: (@MainActor (_ progress: Progress) -> Void)? {
didSet {