Conversation
`ProtocolConformanceDumper.declaration` emitted every conditional requirement back to back, so a conformance carrying two or more conditions rendered as `where A: FirstProtocolA: SecondProtocol` — not valid Swift. Follow the separator contract the repository's other two requirement loops already have (`ProtocolDumper`'s inherited-protocol clause and `TargetGenericContext.dumpGenericRequirements`). Only the `dump` path was affected; `interface` renders the same clause through `SwiftDeclarationPrinter`, whose loop was already correct. The dump snapshot had frozen the malformed output since the dumper was written (d45a91b, 2025-08-14); its corrected form is the regression test — it fails on the old dumper and passes on the new one.
Bumps BundledVersion to 0.17.1 and adds the changelog for the single fix that landed on next after 0.17.0: `dump` emitted a conditional conformance's `where` requirements with no separator between them, so any conformance carrying two or more conditions rendered invalid Swift. A patch number is what this warrants — one behavioural fix in one rendering path, no API change, no dependency change, no snapshot formatVersion change. ProjectEvolutionLog's per-section version annotations were re-checked as its maintenance rule asks at every bump and need no edit: the last section (PR #118 review fixes) ships in 0.17.0, and a single-line separator fix does not warrant a section of its own.
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.
dumpprinted a conditional conformance'swhererequirements with no separator between them, so any conformance carrying two or more conditions rendered invalid Swift:ProtocolConformanceDumper.declaration's loop never emitted,between requirements. The repository's other two requirement loops —ProtocolDumper's inherited-protocol clause andTargetGenericContext.dumpGenericRequirements— already had the separator; this one was written without it in August 2025 and the dump snapshot froze the malformed line as expected output, so nothing caught it.interfacewas never affected: it renders the same clause throughSwiftDeclarationPrinter, whose loop is correct (its snapshot shows the commas).What is in here
release: 0.17.1—BundledVersionbump andChangelogs/0.17.1.md.Verification
swift test --skip IntegrationTests: 1557 tests, one failure —differentKeysParallelViaTaskGroup, the known wall-clock parallelism assertion that only fails under full-suite load; it passes in isolation.