[swift-evolution] [Rejected] SE-0159: Fix Private Access Levels

John McCall rjmccall at apple.com
Mon Apr 3 15:20:07 CDT 2017


> On Apr 3, 2017, at 3:50 PM, Nevin Brackett-Rozinsky via swift-evolution <swift-evolution at swift.org> wrote:
> I am greatly disappointed by this decision. The existence of the keyword “fileprivate” is an unfortunate blemish which never should have been brought into existence. In my view, the churn caused by renaming “private” last year was a major mistake, and we should correct it immediately.

I agree that we shouldn't have done it, but:

> I hope the core team will reconsider the spelling change to “private” and “scoped”.

We won't.

John.

> 
> Nevin
> 
> 
> On Mon, Apr 3, 2017 at 2:34 PM, Douglas Gregor via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> Proposal Link: https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md <https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md>
> 
> The review of ran from March 20...27, 2017. The proposal has been *rejected*.
> 
> The core team had a lengthy discussion of this proposal as well as related ideas that came up during (and prior to) the review [*].
> 
> SE-0159 <https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md> specifically sought to revert the main user-facing part of SE-0025 <https://github.com/apple/swift-evolution/blob/master/proposals/0025-scoped-access-level.md>, which gave “private” lexical-scoping semantics and introduced “fileprivate”. The core team felt that there was sufficient evidence that more-restrictive-than-fileprivate access control is in use within the Swift community and in established patterns, such that it would be harmful to remove the functionality introduced by SE-0025 <https://github.com/apple/swift-evolution/blob/master/proposals/0025-scoped-access-level.md> at this point.
> 
> The core team discussed the idea of renaming to keywords that was brought up in the thread as a way to address many of the concerns raised in SE-0159 <https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md> while providing the same language semantics. Specifically:
> 
> 	* “private” -> “scoped”
> 	* “fileprivate” -> “private”
> 
> The core team determined that such a change, while (technically) easy to automatically migrate, would introduce far too much churn in Swift code bases moving from Swift 3 to Swift 4, compromising the source stability goals set out for Swift 4.
> 
> Finally, the core team discussed a different potential design for “private” that admits a limited form of type-based access control within files. We will open a separate discussion thread on Swift Evolution, with the subject "Type-based ‘private’ access within a file", and are seeking further discussion there and a motivated volunteer to turn it into a new proposal for Swift 4.
> 
> - Doug Gregor
> Review Manager
> 
> [*] Big thanks to Alex Martini for his excellent notes.
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170403/7c5271d0/attachment.html>


More information about the swift-evolution mailing list