Use explicit `any` (#180)

Co-authored-by: Sindre Sorhus <sindresorhus@gmail.com>
This commit is contained in:
Keita Watanabe 2024-07-14 08:56:39 +09:00 committed by GitHub
parent d8a954e69f
commit 5c6d5bfaf0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 7 additions and 7 deletions

View File

@ -209,7 +209,7 @@ Manages `Defaults.Keys` between the locale and remote storage.
Depending on the storage, `Defaults.Keys` will be represented in different forms due to storage limitations of the remote storage. The remote storage imposes a limitation of 1024 keys. Therefore, we combine the recorded timestamp and data into a single key. Unlike remote storage, local storage does not have this limitation. Therefore, we can create a separate key (with `defaultsSyncKey` suffix) for the timestamp record. Depending on the storage, `Defaults.Keys` will be represented in different forms due to storage limitations of the remote storage. The remote storage imposes a limitation of 1024 keys. Therefore, we combine the recorded timestamp and data into a single key. Unlike remote storage, local storage does not have this limitation. Therefore, we can create a separate key (with `defaultsSyncKey` suffix) for the timestamp record.
*/ */
final class iCloudSynchronizer { final class iCloudSynchronizer {
init(remoteStorage: DefaultsKeyValueStore) { init(remoteStorage: any DefaultsKeyValueStore) {
self.remoteStorage = remoteStorage self.remoteStorage = remoteStorage
registerNotifications() registerNotifications()
remoteStorage.synchronize() remoteStorage.synchronize()
@ -231,7 +231,7 @@ final class iCloudSynchronizer {
/** /**
A remote key value storage. A remote key value storage.
*/ */
private let remoteStorage: DefaultsKeyValueStore private let remoteStorage: any DefaultsKeyValueStore
/** /**
A FIFO queue used to serialize synchronization on keys. A FIFO queue used to serialize synchronization on keys.

View File

@ -126,7 +126,7 @@ extension Defaults {
super.init(name: name, suite: suite) super.init(name: name, suite: suite)
if (defaultValue as? _DefaultsOptionalProtocol)?._defaults_isNil == true { if (defaultValue as? (any _DefaultsOptionalProtocol))?._defaults_isNil == true {
return return
} }

View File

@ -85,7 +85,7 @@ extension Defaults {
} }
private static var preventPropagationThreadDictionaryKey: String { private static var preventPropagationThreadDictionaryKey: String {
"\(type(of: Observation.self))_threadUpdatingValuesFlag" "\(type(of: (any Observation).self))_threadUpdatingValuesFlag"
} }
/** /**
@ -460,7 +460,7 @@ extension Defaults {
_ key: Key<Value>, _ key: Key<Value>,
options: ObservationOptions = [.initial], options: ObservationOptions = [.initial],
handler: @escaping (KeyChange<Value>) -> Void handler: @escaping (KeyChange<Value>) -> Void
) -> Observation { ) -> some Observation {
let observation = UserDefaultsKeyObservation(object: key.suite, key: key.name) { change in let observation = UserDefaultsKeyObservation(object: key.suite, key: key.name) { change in
handler( handler(
KeyChange(change: change, defaultValue: key.defaultValue) KeyChange(change: change, defaultValue: key.defaultValue)
@ -490,7 +490,7 @@ extension Defaults {
keys: _AnyKey..., keys: _AnyKey...,
options: ObservationOptions = [.initial], options: ObservationOptions = [.initial],
handler: @escaping () -> Void handler: @escaping () -> Void
) -> Observation { ) -> some Observation {
let pairs = keys.map { let pairs = keys.map {
(suite: $0.suite, key: $0.name) (suite: $0.suite, key: $0.name)
} }

View File

@ -10,7 +10,7 @@ extension UserDefaults {
} }
func _set<Value: Defaults.Serializable>(_ key: String, to value: Value) { func _set<Value: Defaults.Serializable>(_ key: String, to value: Value) {
if (value as? _DefaultsOptionalProtocol)?._defaults_isNil == true { if (value as? (any _DefaultsOptionalProtocol))?._defaults_isNil == true {
removeObject(forKey: key) removeObject(forKey: key)
return return
} }