I'm not sure how this would be different than any other source-breaking change that we've adopted across a major language version bump. The rule would just be "in Swift version <6, we use the 'legacy' memberwise init synthesis algorithm, in Swift version >=6 we use the 'new' one."
Perhaps I'm out-of-date on the latest Concurrency plans, but I thought this characterization only applied to code in the Swift 5 language version:
That is, in Swift 6 we will start emitting errors for code that would compile fine (with an optional warning) in the Swift 5 language mode.
Yeah, this would be great. We'd need to make sure there's always a way for users to disambiguate between the two inits in cases where they might be ambiguous, though .
Will do! Personally, I think these should be two separate proposals, with the memberwise init proposal also encompassing any other 'fixes' we want to make to the synthesized init (potentially unrelated to property wrappers, even if that's the main motivation).