Hello, Swift community!
The review of SE-0502: Exclude private initialized properties from memberwise initializer ended on January 22, 2026.
Feedback on the proposal was light but generally positive, with commenters agreeing that the change would reduce boilerplate in a number of cases.
One commenter during the review asked whether it was worthwhile to make small changes to memberwise initializers without a more comprehensive "vision" of how they could be redesigned. The Language Steering Group agrees that there other enhancements that could be made for memberwise initializers but we also feel that incremental changes like SE-0502 are valuable even without this broader vision.
As originally written, SE-0502 proposed that the old synthesized initializer (with private or fileprivate visibility) would be deprecated (unconditionally emitting a warning) in favor of the new one, but the actual removal of the old synthesizer was left for future work. Some commenters during the review asked why this change could not simply be additive (synthesizing both initializers as an intentional change rather than a compatibility path). Source compatibility testing also revealed several cases where the current synthesized initializer was being used and was providing real value—for example, consider a type that offers higher-visibility factory functions that delegate to the less visible synthesized initializer (where the default-initialized arguments may inherit the same value or use a different value than the default). The Language Steering Group agrees that it may be premature to promise deprecation of the old initializer.
The author has taken this feedback and moved the discussion of removing the old synthesized initializer from the normative content of the proposal into Future Directions. Therefore, the Language Steering Group believes that the feature as proposed is a positive improvement and we accept this proposal with that modification.
Thanks to everybody who participated in the review!
—Tony Allevato, review manager