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
{{ message }}
Repository navigation
Commit 10e6c21
Browse filesBrowse the repository at this point in the historyBrowse files
[swift6] Add nonisolatedModels option for default MainActor isolation (#25004)
* [swift6] Add nonisolatedModels option for default MainActor isolation
Adds a `nonisolatedModels` boolean option (default: false) to the swift6
generator. When enabled, generated model structs/classes/enums, the
extensions emitted alongside them, and the supporting protocols and helper
types they conform to or store (ParameterConvertible,
CaseIterableDefaultsLast, UnknownCaseCheckable, NullEncodable, JSONValue,
OpenAPIDateWithoutTime, the validation rule structs, CodableHelper,
OpenAPIMutex, OpenISO8601DateFormatter, and the ParameterConvertible,
CodingKey and Codable container extensions in Extensions.swift) are marked
`nonisolated`. This lets the generated sources be vendored into a module
built with Swift 6.2 default MainActor isolation (SE-0466) while keeping
models decodable and usable off the main actor. Requires a Swift 6.1+
toolchain when enabled; output is unchanged when the option is off.
Enabled in the swift6 validation sample.
Fixes#24903
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* [swift6] nonisolatedModels: cover objcCompatible models and enum tests
Review flagged that objcCompatible model classes were left MainActor-isolated
while their Identifiable/UnknownCaseCheckable extensions were marked
nonisolated, which fails to compile under default MainActor isolation. Mark the
objcCompatible class declaration nonisolated too (verified to build with 0
errors), and add tests for top-level, nested and oneOf enums and objcCompatible.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* [swift6] tests: reuse generateSwift6 helper in nonisolatedModels tests
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
|mapFileBinaryToData|Map File and Binary to Data (default: false)||false|
38
38
|nonPublicApi|Generates code with reduced access modifiers; allows embedding elsewhere without exposing non-public API calls to consumers.(default: false)||null|
39
+
|nonisolatedModels|Mark generated models, and the supporting protocols, extensions and helper types they rely on, as nonisolated so they stay usable off the main actor in modules built with default MainActor isolation (SE-0466). Requires a Swift 6.1+ toolchain (default: false)||false|
39
40
|objcCompatible|Add additional properties and methods for Objective-C compatibility (default: false)||null|
40
41
|oneOfUnknownDefaultCase|Add unknownDefault case to oneOf enum (default: false)||false|
0 commit comments