forked from shadowfacts/Tusker
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;
|
MARKETING_VERSION = 2022.1;
|
||||||
OTHER_CODE_SIGN_FLAGS = "";
|
OTHER_CODE_SIGN_FLAGS = "";
|
||||||
OTHER_LDFLAGS = "";
|
OTHER_LDFLAGS = "";
|
||||||
"OTHER_SWIFT_FLAGS[sdk=iphone*14*]" = "$(inherited) -D SDK_IOS_14";
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = space.vaccor.Tusker;
|
PRODUCT_BUNDLE_IDENTIFIER = space.vaccor.Tusker;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
@ -2245,7 +2244,6 @@
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 2022.1;
|
MARKETING_VERSION = 2022.1;
|
||||||
OTHER_CODE_SIGN_FLAGS = "";
|
OTHER_CODE_SIGN_FLAGS = "";
|
||||||
"OTHER_SWIFT_FLAGS[sdk=iphone*14*]" = "$(inherited) -D SDK_IOS_14";
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = space.vaccor.Tusker;
|
PRODUCT_BUNDLE_IDENTIFIER = space.vaccor.Tusker;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
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 {
|
func handleAddLoadingIndicator() async {
|
||||||
var snapshot = dataSource.snapshot()
|
var snapshot = dataSource.snapshot()
|
||||||
if !snapshot.sectionIdentifiers.contains(.footer) {
|
if !snapshot.sectionIdentifiers.contains(.footer) {
|
||||||
|
|
|
@ -20,7 +20,14 @@ protocol TimelineLikeControllerDelegate<TimelineItem>: AnyObject {
|
||||||
|
|
||||||
func canLoadOlder() async -> Bool
|
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")
|
private let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "TimelineLikeController")
|
||||||
|
@ -112,7 +119,24 @@ actor TimelineLikeController<Item> {
|
||||||
|
|
||||||
private func emit(event: Event) async {
|
private func emit(event: Event) async {
|
||||||
precondition(state.canEmit(event: event))
|
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 {
|
enum State: Equatable, CustomDebugStringConvertible {
|
||||||
|
|
Loading…
Reference in New Issue