[swift-evolution] SE-0025: Scoped Access Level, next steps
David Owens II
david at owensd.io
Fri Mar 25 12:18:38 CDT 2016
I have types where I declare their members (some public, some private) and use extensions to provide the API implementations of protocols.
These implementations use data that is not public to the type. A file-based access level is the only one that works for me.
This is actually the common case for me.
Sent from my iPhone
> On Mar 25, 2016, at 10:11 AM, Erica Sadun via swift-evolution <swift-evolution at swift.org> wrote:
>
>
>> On Mar 25, 2016, at 10:57 AM, Tino Heth via swift-evolution <swift-evolution at swift.org> wrote:
>>
>>
>>> These are special cases — both file-private and module-private is something that is fairly unusual
>>
>> afaics this is the third time someone mentions that "file-private" is uncommon — so I think it's time someone dissents:
>> That statement is at least subjective… right now, "file-private" is one of three access levels, and I wouldn't dare to say either is more or less important than the others.
>>
>> I never encountered situations with the current model where I missed a new "private"-level, and maybe "private" will become fairly unusual for the code I'll be writing.
>>
>> In my existing code, the new meaning of private wouldn't break much, but the current meaning doesn't hurt me, and there are cases where "file-private" is needed.
>>
>> None the less, I don't care much about the "ugliness" of "fileprivate" — but not because I perceive it as unusual:
>> I just expect that code completion will do the typing for me, so maybe "f" will be all I have to write (half the characters of "pr" ;-)
>
> I cannot come up with a single use-case in my code for fileprivate and would love
> some real world examples where you'd want visibility in a single file but not across
> an entire module.
>
> The fileprivate behavior has been a bugaboo of mine for some time, particularly in
> playground use.
>
> As far as I'm concerned, the control I really want is public, intra-modular, private, and
> private-even-to-extensions-and-subclasses. I assume the latter is a no-go.
>
> -- E
>
>
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
More information about the swift-evolution
mailing list