The capture sink is an environment key rather than an @Entry - #28
Merged
Merged
Conversation
Swift 6.4's @entry macro warns that a closure it stores may invalidate dependents on every update, since closures are not comparable — and the warnings gate fails the build on any first-party warning. The sink is installed once at the app root, so there is nothing to compare and nothing to gain from making it comparable; the pre-macro spelling carries the same public \.pinCaptureSink without the warning. Tests: unit 213/213 + hosted 16/16 green (local xcodebuild)
3lvis
marked this pull request as ready for review
September 15, 2026 06:36
This was referenced Sep 15, 2026
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.
The warnings gate fails the build on any first-party warning, and Xcode 27 emits one that #27 did not carry a fix for:
The sink is installed once at the app root, so there is nothing to compare and nothing to gain from making it comparable. Writing the environment key the pre-macro way keeps the same public
\.pinCaptureSinkand drops the warning — no new type, no change for anyone reading or setting it.Verified on Xcode 27.0 (27A266a): an uncached
xcodebuild buildof the Demo scheme emits zero warnings, first-party or otherwise, and both tiers pass on an iOS 27 simulator — unit 213/213, hosted 16/16.Worth recording why #27 missed it: the local warnings check ran against a warm build directory, so unchanged files never recompiled and the warning never re-emitted. The gate builds uncached for exactly this reason, and that is the only way to check it locally too.