Fix release build: break up type-checker-stalling ?? chains#11
Open
ehs208 wants to merge 1 commit into
Open
Conversation
`swift build -c release` failed to compile InboxNotification.swift: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions The `body` value was built from a long `??` chain mixing `stringValue(for:)` and `nestedStringValue(...)`. Because `??` is an overloaded operator, a chain that long makes the Swift type-checker explore too many overload combinations and time out. Introduce a `firstStringValue(forAny:)` helper that returns the first non-empty string among a list of keys, and use it to collapse the long `??` chains for workspaceId, title, body, surfaceId, id, subtitle, and threadId. Key ordering (first match wins) is preserved, so behavior is unchanged. Release build and all 37 SharedKitTests pass. Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthrough
ChangesInbox notification fallback extraction
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
swift build -c release(used byscripts/install-launchd.sh) fails to compile:This blocks the launchd install entirely — the script never gets past the build step.
Cause
The
bodyvalue is assembled from a long??chain mixingstringValue(for:)andnestedStringValue(...). Since??is an overloaded operator, a chain that long forces the Swift type-checker to explore too many overload combinations and time out. (Swift 6.0.3, arm64 macOS.)Fix
Add a small
firstStringValue(forAny:)helper on the payload dictionary that returns the first non-empty string among a list of keys, and use it to collapse the long??chains forworkspaceId,title,body,surfaceId,id,subtitle, andthreadId.Key ordering (first match wins) is preserved, so behavior is unchanged — this is purely a readability + compile-time fix.
Verification
swift build -c release→Build complete!swift test --filter SharedKitTests→ all 37 tests pass (incl.InboxNotificationTests)scripts/install-launchd.shnow runs to completion; agent reachesstate = runningand listens on0.0.0.0:4399🤖 Generated with Claude Code
Summary by CodeRabbit