mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-03-25 19:01:41 +01:00
remove warnings when calling unsafeBitCast()
This commit is contained in:
@@ -35,6 +35,21 @@ import CoreStore
|
|||||||
|
|
||||||
class ListObserverTests: BaseTestDataTestCase {
|
class ListObserverTests: BaseTestDataTestCase {
|
||||||
|
|
||||||
|
@objc
|
||||||
|
dynamic func test_ThatListObservers_CanDowncast() {
|
||||||
|
|
||||||
|
self.prepareStack { (stack) in
|
||||||
|
|
||||||
|
let monitor = stack.monitorSectionedList(
|
||||||
|
From<TestEntity1>(),
|
||||||
|
SectionBy(#keyPath(TestEntity1.testBoolean)),
|
||||||
|
OrderBy(.ascending(#keyPath(TestEntity1.testBoolean)), .ascending(#keyPath(TestEntity1.testEntityID)))
|
||||||
|
)
|
||||||
|
let downcast = monitor.downcast()
|
||||||
|
XCTAssertTrue(monitor == downcast)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@objc
|
@objc
|
||||||
dynamic func test_ThatListObservers_CanReceiveInsertNotifications() {
|
dynamic func test_ThatListObservers_CanReceiveInsertNotifications() {
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,27 @@ import CoreStore
|
|||||||
|
|
||||||
// MARK: - ObjectObserverTests
|
// MARK: - ObjectObserverTests
|
||||||
|
|
||||||
class ObjectObserverTests: BaseTestDataTestCase {
|
class ObjectObserverTests: BaseTestDataTestCase {
|
||||||
|
|
||||||
|
@objc
|
||||||
|
dynamic func test_ThatObjectObservers_CanDowncast() {
|
||||||
|
|
||||||
|
self.prepareStack { (stack) in
|
||||||
|
|
||||||
|
self.prepareTestDataForStack(stack)
|
||||||
|
|
||||||
|
guard let object = stack.fetchOne(
|
||||||
|
From<TestEntity1>(),
|
||||||
|
Where(#keyPath(TestEntity1.testEntityID), isEqualTo: 101)) else {
|
||||||
|
|
||||||
|
XCTFail()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let monitor = stack.monitorObject(object)
|
||||||
|
let downcast = monitor.downcast()
|
||||||
|
XCTAssertTrue(monitor == downcast)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@objc
|
@objc
|
||||||
dynamic func test_ThatObjectObservers_CanReceiveUpdateNotifications() {
|
dynamic func test_ThatObjectObservers_CanReceiveUpdateNotifications() {
|
||||||
|
|||||||
@@ -677,7 +677,12 @@ public final class ListMonitor<T: NSManagedObject>: Hashable {
|
|||||||
|
|
||||||
internal func downcast() -> ListMonitor<NSManagedObject> {
|
internal func downcast() -> ListMonitor<NSManagedObject> {
|
||||||
|
|
||||||
return unsafeBitCast(self, to: ListMonitor<NSManagedObject>.self)
|
@inline(__always)
|
||||||
|
func noWarnUnsafeBitCast<T, U>(_ x: T, to type: U.Type) -> U {
|
||||||
|
|
||||||
|
return unsafeBitCast(x, to: type)
|
||||||
|
}
|
||||||
|
return noWarnUnsafeBitCast(self, to: ListMonitor<NSManagedObject>.self)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal func registerChangeNotification(_ notificationKey: UnsafeRawPointer, name: Notification.Name, toObserver observer: AnyObject, callback: @escaping (_ monitor: ListMonitor<T>) -> Void) {
|
internal func registerChangeNotification(_ notificationKey: UnsafeRawPointer, name: Notification.Name, toObserver observer: AnyObject, callback: @escaping (_ monitor: ListMonitor<T>) -> Void) {
|
||||||
|
|||||||
@@ -110,11 +110,21 @@ public final class ObjectMonitor<EntityType: NSManagedObject>: Equatable {
|
|||||||
return lhs === rhs
|
return lhs === rhs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static func == <T: NSManagedObject, U: NSManagedObject>(lhs: ObjectMonitor<T>, rhs: ObjectMonitor<U>) -> Bool {
|
||||||
|
|
||||||
|
return lhs.fetchedResultsController === rhs.fetchedResultsController
|
||||||
|
}
|
||||||
|
|
||||||
public static func ~= <T: NSManagedObject>(lhs: ObjectMonitor<T>, rhs: ObjectMonitor<T>) -> Bool {
|
public static func ~= <T: NSManagedObject>(lhs: ObjectMonitor<T>, rhs: ObjectMonitor<T>) -> Bool {
|
||||||
|
|
||||||
return lhs === rhs
|
return lhs === rhs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static func ~= <T: NSManagedObject, U: NSManagedObject>(lhs: ObjectMonitor<T>, rhs: ObjectMonitor<U>) -> Bool {
|
||||||
|
|
||||||
|
return lhs.fetchedResultsController === rhs.fetchedResultsController
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// MARK: Hashable
|
// MARK: Hashable
|
||||||
|
|
||||||
@@ -212,7 +222,12 @@ public final class ObjectMonitor<EntityType: NSManagedObject>: Equatable {
|
|||||||
|
|
||||||
internal func downcast() -> ObjectMonitor<NSManagedObject> {
|
internal func downcast() -> ObjectMonitor<NSManagedObject> {
|
||||||
|
|
||||||
return unsafeBitCast(self, to: ObjectMonitor<NSManagedObject>.self)
|
@inline(__always)
|
||||||
|
func noWarnUnsafeBitCast<T, U>(_ x: T, to type: U.Type) -> U {
|
||||||
|
|
||||||
|
return unsafeBitCast(x, to: type)
|
||||||
|
}
|
||||||
|
return noWarnUnsafeBitCast(self, to: ObjectMonitor<NSManagedObject>.self)
|
||||||
}
|
}
|
||||||
|
|
||||||
deinit {
|
deinit {
|
||||||
|
|||||||
Reference in New Issue
Block a user