[REQ][swift6] 为使用默认 MainActor 隔离的项目提供标记生成的声明为非隔离的选项
作者: danieldickison创建于 2026年9月8日更新于 2026年9月8日
标签Enhancement: Feature
你的功能请求是否与一个问题有关?请描述。 Swift 6.2 允许模块默认启用主演员隔离(SE-0466, -default-isolation MainActor;在 Xcode 26 中, SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor 构建设置,新项目模板可启用)。在该设置下,每个顶级声明如果没有明确的隔离,都会推断为 @MainActor,包括 swift6 生成器生成的 public struct/public enum 模型、它们的 Codable 协议以及它为它们写入的 extension 块。生成的模型然后不能从任何非隔离的上下文中使用,这正是通常发生解码的地方(一个 URLSession 完成、一个基于 actor 的 API 客户端、一个后台 Task)。诊断信息的格式如下(Xcode 26, Swift 6.2):
'Foo' 协议 'Decodable' 的符合性跨入了主演员隔离代码,可能会导致数据竞争
主演员隔离初始化器 'init(from:)' 不能用于满足非隔离的 'Decodable' 协议要求描述你想要的解决方案
内容来源: OpenAPITools/openapi-generator