From 7173da446479b43335ee1d12a809e4ac5c70bf08 Mon Sep 17 00:00:00 2001 From: Brendan Szymanski Date: Sun, 14 Jun 2026 16:21:44 -0400 Subject: [PATCH] Pass observer ID directly to ObserverRef init --- Sources/LuminateDI/Injected.swift | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Sources/LuminateDI/Injected.swift b/Sources/LuminateDI/Injected.swift index 8271895..1d64ac2 100644 --- a/Sources/LuminateDI/Injected.swift +++ b/Sources/LuminateDI/Injected.swift @@ -13,20 +13,18 @@ public struct Injected { public init(_ keyPath: KeyPath) { self.keyPath = keyPath - self.observerRef = ObserverRef() - observerRef.id = DIContainer.shared.addObserver(for: keyPath) { - Task { @MainActor in - StateManager.updateViews() + self.observerRef = ObserverRef( + id: DIContainer.shared.addObserver(for: keyPath) { + Task { @MainActor in + StateManager.updateViews() + } } - } + ) } } private final class ObserverRef { - var id: UUID? - deinit { - if let id { - DIContainer.shared.removeObserver(id) - } - } + let id: UUID + init(id: UUID) { self.id = id } + deinit { DIContainer.shared.removeObserver(id) } }