Skip to content

Commit 9ab004a

Browse files
authored
Update Unmanaged+Extension (#262)
1 parent 88b9b33 commit 9ab004a

File tree

3 files changed

+33
-26
lines changed

3 files changed

+33
-26
lines changed

Sources/OpenSwiftUICore/Data/Property/PropertyList.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,14 @@ private func find<Key: PropertyKey>(
145145
return nil
146146
}
147147
repeat {
148-
guard keyFilter.match(element.flatMap(\.keyFilter)) else {
148+
guard keyFilter.match(element.map(\.keyFilter)) else {
149149
return nil
150150
}
151151
if let before = element.map(\.before),
152152
let result = find(before, key: key, keyFilter: keyFilter) {
153153
return result
154154
}
155-
if element.flatMap(\.keyType) == Key.self {
155+
if element.map(\.keyType) == Key.self {
156156
return element.map { $0 as? TypedElement<Key> }
157157
}
158158
guard let after = element.map(\.after) else {

Sources/OpenSwiftUICore/Data/Property/Unmanaged+Extension.swift

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
//
2+
// Unmanaged+Extension.swift
3+
// OpenSwiftUICore
4+
//
5+
// Audited for iOS 18.0
6+
// Status: Complete
7+
8+
extension Unmanaged {
9+
@_transparent
10+
package func map<T>(_ transform: (Instance) -> T) -> T {
11+
_withUnsafeGuaranteedRef { transform($0) }
12+
}
13+
14+
@_transparent
15+
package func map<T>(_ transform: (Instance) -> T) -> Unmanaged<T> where T: AnyObject {
16+
_withUnsafeGuaranteedRef { .passUnretained(transform($0)) }
17+
}
18+
19+
@_transparent
20+
package func map<T>(_ transform: (Instance) -> T?) -> Unmanaged<T>? where T: AnyObject {
21+
_withUnsafeGuaranteedRef { transform($0).map { .passUnretained($0) } }
22+
}
23+
24+
package static func == (lhs: Unmanaged<Instance>, rhs: Unmanaged<Instance>) -> Bool {
25+
lhs.toOpaque() == rhs.toOpaque()
26+
}
27+
28+
package static func != (lhs: Unmanaged<Instance>, rhs: Unmanaged<Instance>) -> Bool {
29+
lhs.toOpaque() != rhs.toOpaque()
30+
}
31+
}

0 commit comments

Comments
 (0)