<div dir="ltr">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.<div><br></div><div>I hope the core team will reconsider the spelling change to “private” and “scoped”.<br><div><br></div><div>Nevin</div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 3, 2017 at 2:34 PM, Douglas Gregor via swift-evolution <span dir="ltr"><<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Proposal Link: <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md" target="_blank">https://github.com/<wbr>apple/swift-evolution/blob/<wbr>master/proposals/0159-fix-<wbr>private-access-levels.md</a><div><br></div><div>The review of ran from March 20...27, 2017. The proposal has been *rejected*.</div><div><br></div><div>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><br></div><div><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md" target="_blank">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" target="_blank">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-<wbr>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" target="_blank">SE-0025</a> at this point.</div><div><br></div><div>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" target="_blank">SE-0159</a> while providing the same language semantics. Specifically:</div><div><br></div><div><span class="m_5795448391054527487Apple-tab-span" style="white-space:pre-wrap">        </span>* “private” -> “scoped”</div><div><span class="m_5795448391054527487Apple-tab-span" style="white-space:pre-wrap">        </span>* “fileprivate” -> “private”</div><div><br></div><div>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><br></div><div>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><br></div><div>- Doug Gregor</div><div>Review Manager</div><div><br></div><div>[*] Big thanks to Alex Martini for his excellent notes.</div></div><br>______________________________<wbr>_________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>
<br></blockquote></div><br></div>