You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Swift standalone output can contain duplicate module-level newJSONDecoder and newJSONEncoder declarations when several generated files are compiled together. The original single-file fix used fileprivate, but the helpers were later moved to JSONSchemaSupport.swift for multi-file output and changed back to internal visibility.
This makes the visibility conditional:
standalone output: fileprivate
--multi-file-output: internal visibility in JSONSchemaSupport.swift
Added regression coverage for both rendering modes. Verified the unit tests, build, and Swift type-checking for generated standalone and multi-file output.
Relating this to #3105 (--nest-types), since both address multi-source standalone symbol collisions but at different scopes:
This PR (#3094) — scopes newJSONDecoder/newJSONEncoder to fileprivate in standalone output. Fixes the helper-symbol collision only. Child types stay at module scope, so repeated names like Image/Header/Payload across API models still collide. Keeps the flat type API (Image, not Root.Image).
#3105 (--nest-types) — opt-in option that nests child types under their top-level owner (Root.Image) and turns the helpers into static func members of the top-level type. Fixes both sibling-type and helper collisions, making each file fully self-contained. The trade-off is the type API changes (qualified Root.Image).
If only one is preferred, --nest-types (#3105) is the more complete fix for the collision class of issues (also covers #3104), but #3094 is the lower-impact change for users who can't adopt nesting.
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
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.
Closes #3093
Swift standalone output can contain duplicate module-level
newJSONDecoderandnewJSONEncoderdeclarations when several generated files are compiled together. The original single-file fix usedfileprivate, but the helpers were later moved toJSONSchemaSupport.swiftfor multi-file output and changed back to internal visibility.This makes the visibility conditional:
fileprivate--multi-file-output: internal visibility inJSONSchemaSupport.swiftAdded regression coverage for both rendering modes. Verified the unit tests, build, and Swift type-checking for generated standalone and multi-file output.