<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Proposal Link: <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md</a><div class=""><br class=""></div><div class="">The review of ran from March 20...27, 2017. The proposal has been *rejected*.</div><div class=""><br class=""></div><div class="">The core team had a lengthy discussion of this proposal as well as related ideas that came up during (and prior to) the review [*].</div><div class=""><br class=""></div><div class=""><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md" class="">SE-0159</a> specifically sought to revert the main user-facing part of <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0025-scoped-access-level.md" class="">SE-0025</a>, 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 <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0025-scoped-access-level.md" class="">SE-0025</a> at this point.</div><div class=""><br class=""></div><div class="">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 <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md" class="">SE-0159</a> while providing the same language semantics. Specifically:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>* “private” -> “scoped”</div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>* “fileprivate” -> “private”</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">- Doug Gregor</div><div class="">Review Manager</div><div class=""><br class=""></div><div class="">[*] Big thanks to Alex Martini for his excellent notes.</div></body></html>