[swift-evolution] [Proposal Draft] Flexible memberwise initialization

David Owens II david at owensd.io
Tue Dec 22 01:26:38 CST 2015


> On Dec 21, 2015, at 11:05 PM, Brent Royal-Gordon <brent at architechies.com> wrote:
> 
>>> The proposal already states that a memberwise initializer only includes parameters for properties that are at least as visible as the initializer itself. So if you can see the `s` and `i` parameters, you can also see the `s` and `i` properties. It's not going to expose anything that isn't already visible.
>> 
>> This isn’t about access modifiers, it’s about the name chosen for internal variables vs. names chosen for API contracts.
> 
> But if you have a bad name in your memberwise initializer, that bad name is *by definition* already part of your API contract as a property name.
> 
> Stated another way: Either the name is already externally visible as a property, and thus is not by any sensible definition an "internal" name, or the memberwise initializer will not publish it.

Not with the updates I suggested as you can still initialize non-visible members. Whether you find that valuable or not is a different question.

-David


More information about the swift-evolution mailing list