Fix building in release mode
When handleEvent dispatches to the other methods, it crashes the compiler during an optimization pass. Seems to be related to: https://github.com/apple/swift/issues/61350
This commit is contained in:
parent
21958eb77f
commit
46db70d58b
|
@ -2216,7 +2216,6 @@
|
|||
MARKETING_VERSION = 2022.1;
|
||||
OTHER_CODE_SIGN_FLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
"OTHER_SWIFT_FLAGS[sdk=iphone*14*]" = "$(inherited) -D SDK_IOS_14";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = space.vaccor.Tusker;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
|
@ -2245,7 +2244,6 @@
|
|||
);
|
||||
MARKETING_VERSION = 2022.1;
|
||||
OTHER_CODE_SIGN_FLAGS = "";
|
||||
"OTHER_SWIFT_FLAGS[sdk=iphone*14*]" = "$(inherited) -D SDK_IOS_14";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = space.vaccor.Tusker;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
|
|
|
@ -63,27 +63,6 @@ extension TimelineLikeCollectionViewController {
|
|||
}
|
||||
}
|
||||
|
||||
func handleEvent(_ event: TimelineLikeController<TimelineItem>.Event) async {
|
||||
switch event {
|
||||
case .addLoadingIndicator:
|
||||
await handleAddLoadingIndicator()
|
||||
case .removeLoadingIndicator:
|
||||
await handleRemoveLoadingIndicator()
|
||||
case .loadAllError(let error, _):
|
||||
await handleLoadAllError(error)
|
||||
case .replaceAllItems(let items, _):
|
||||
await handleReplaceAllItems(items)
|
||||
case .loadNewerError(let error, _):
|
||||
await handleLoadNewerError(error)
|
||||
case .prependItems(let items, _):
|
||||
await handlePrependItems(items)
|
||||
case .loadOlderError(let error, _):
|
||||
await handleLoadOlderError(error)
|
||||
case .appendItems(let items, _):
|
||||
await handleAppendItems(items)
|
||||
}
|
||||
}
|
||||
|
||||
func handleAddLoadingIndicator() async {
|
||||
var snapshot = dataSource.snapshot()
|
||||
if !snapshot.sectionIdentifiers.contains(.footer) {
|
||||
|
|
|
@ -20,7 +20,14 @@ protocol TimelineLikeControllerDelegate<TimelineItem>: AnyObject {
|
|||
|
||||
func canLoadOlder() async -> Bool
|
||||
|
||||
func handleEvent(_ event: TimelineLikeController<TimelineItem>.Event) async
|
||||
func handleAddLoadingIndicator() async
|
||||
func handleRemoveLoadingIndicator() async
|
||||
func handleLoadAllError(_ error: Swift.Error) async
|
||||
func handleReplaceAllItems(_ timelineItems: [TimelineItem]) async
|
||||
func handleLoadNewerError(_ error: Swift.Error) async
|
||||
func handlePrependItems(_ timelineItems: [TimelineItem]) async
|
||||
func handleLoadOlderError(_ error: Swift.Error) async
|
||||
func handleAppendItems(_ timelineItems: [TimelineItem]) async
|
||||
}
|
||||
|
||||
private let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "TimelineLikeController")
|
||||
|
@ -112,7 +119,24 @@ actor TimelineLikeController<Item> {
|
|||
|
||||
private func emit(event: Event) async {
|
||||
precondition(state.canEmit(event: event))
|
||||
await delegate.handleEvent(event)
|
||||
switch event {
|
||||
case .addLoadingIndicator:
|
||||
await delegate.handleAddLoadingIndicator()
|
||||
case .removeLoadingIndicator:
|
||||
await delegate.handleRemoveLoadingIndicator()
|
||||
case .loadAllError(let error, _):
|
||||
await delegate.handleLoadAllError(error)
|
||||
case .replaceAllItems(let items, _):
|
||||
await delegate.handleReplaceAllItems(items)
|
||||
case .loadNewerError(let error, _):
|
||||
await delegate.handleLoadNewerError(error)
|
||||
case .prependItems(let items, _):
|
||||
await delegate.handlePrependItems(items)
|
||||
case .loadOlderError(let error, _):
|
||||
await delegate.handleLoadOlderError(error)
|
||||
case .appendItems(let items, _):
|
||||
await delegate.handleAppendItems(items)
|
||||
}
|
||||
}
|
||||
|
||||
enum State: Equatable, CustomDebugStringConvertible {
|
||||
|
|
Loading…
Reference in New Issue