[swift-evolution] Type-based ‘private’ access within a file
brent at architechies.com
Tue Apr 4 21:00:20 CDT 2017
> On Apr 4, 2017, at 6:45 PM, Brent Royal-Gordon <brent at architechies.com> wrote:
> Access control is a tar pit; let's not drown in it.
Amending this: The precise boundaries of lower-than-`fileprivate` levels of access control—what we're discussing here—are a tar pit. There are gains to be made by removing an access control level, but that's not an option. There are gains to be made between `fileprivate` and `internal`, and between `internal` and `public`, but those are not what we're considering here. There *may* be gains to be made by a ` `private` -> `scoped`/`fileprivate` -> `private` switch (I'm skeptical, but I can see the argument), but that's not in the offing, either.
Fiddling with the precise boundaries of `private` will have three effects:
1. Some users will find it more useful.
2. Other users will find it less useful.
3. *Every* user, happy or not, will have to re-learn what `private` does for the second time in two years.
It does not seem possible to determine whether #1 or #2 will predominate. This is different from most proposals we consider: We are pretty confident that adopting key paths or making `String` into a `Collection` will be more helpful than harmful, but I don't think that's true of fiddling with `private`. And #3 is a certain, significant, and unambiguously negative effect.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution