From c9bff50a1a1ea2877c875a45d7eb92ec450b982b Mon Sep 17 00:00:00 2001 From: Gronod Date: Sat, 12 Sep 2026 09:00:48 +0100 Subject: [PATCH] fix(m9): clear printTask without defer for Swift 5.7 (#113) Swift 5.7 on the macOS 12 CI runner (Xcode 14.2) rejects mutation of actor-isolated properties inside defer bodies, failing run 31978 at PrintSessionViewModel.swift:113 and :144. Clear printTask explicitly at each exit point of the print task closures. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- Sources/ICCery/Print/PrintSessionViewModel.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Sources/ICCery/Print/PrintSessionViewModel.swift b/Sources/ICCery/Print/PrintSessionViewModel.swift index f1f59f7..e8e4ed3 100644 --- a/Sources/ICCery/Print/PrintSessionViewModel.swift +++ b/Sources/ICCery/Print/PrintSessionViewModel.swift @@ -110,7 +110,8 @@ final class PrintSessionViewModel: ObservableObject { isPrinting = true let task = Task { @MainActor [weak self] in guard let self else { return } - defer { self.printTask = nil } + // `defer` cannot mutate isolated state under Swift 5.7 + // (Xcode 14.2 / macOS 12 runner), so clear explicitly (#113). var printed = 0 for page in result.pages { do { @@ -123,6 +124,7 @@ final class PrintSessionViewModel: ObservableObject { + error.localizedDescription ) isPrinting = false + self.printTask = nil return } } @@ -132,6 +134,7 @@ final class PrintSessionViewModel: ObservableObject { autoHideAfter: nil ) isPrinting = false + self.printTask = nil } printTask = task } @@ -141,7 +144,6 @@ final class PrintSessionViewModel: ObservableObject { isPrinting = true let task = Task { @MainActor [weak self] in guard let self else { return } - defer { self.printTask = nil } do { try await spool(page, index: page.index, pageSize: pageSize) printNotice = Notice( @@ -156,6 +158,7 @@ final class PrintSessionViewModel: ObservableObject { ) } isPrinting = false + self.printTask = nil } printTask = task } -- 2.39.5