<div dir="ltr">On Thu, Apr 6, 2017 at 3:20 PM, James Froggatt via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That&#39;s a shame if true, but my interpretation was that the rejection specifically cited the double-rename of fileprivate to private, and private to scoped, a major change which renames two access modifier, and reuses a spelling, making a staged migration impossible.<br></blockquote><div><br></div><div>That&#39;s my understanding as well. The core team&#39;s promise at the end of SE-0025 was that they would entertain future suggestions for `fileprivate` should a superior spelling come about.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Since this suggestion is less impactful - affecting only one keyword, using a spelling with no prior meaning, and can be done as a staged transition (we can keep fileprivate around in Swift 4 while allowing shared and adding a warning to fileprivate), I hoped the core team might be willing to consider it.<br>
<br>
I think a lot of people would be pleased to be able to use a better spelling than fileprivate, even if it is never completely removed. This proposal would allow that.<br>
<br>
&gt; On 6 Apr 2017, at 19:32, David Hart &lt;<a href="mailto:david@hartbit.com">david@hartbit.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Hi there,<br>
&gt;<br>
&gt; During the discussion that followed the rejection of SE-0159 the Core Team explained that they would not consider any rename to access control keywords, for the same reasons behind SE-0159&#39;s rejection: source compatibility. So I&#39;m fairly sure this suggestion would go very far.<br>
&gt;<br>
&gt; David.<br>
<div class="HOEnZb"><div class="h5">&gt;<br>
&gt;&gt; On 6 Apr 2017, at 16:30, James Froggatt via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; As the title says, I think renaming `fileprivate` to `shared` is the simplest way to solve the issues we have with spelling.<br>
&gt;&gt;<br>
&gt;&gt; My first line of reasoning is that it only affects one modifier, leaving private as it is. This minimises the amount of code affected, making it much more straightforward to migrate than the fileprivate-private-scoped switchup that has been suggested previously.<br>
&gt;&gt;<br>
&gt;&gt; My justification for `shared` as the new spelling is that it expresses *why* the developer would use the access level - to share implementation details with something, be it an extension or another type. It sounds natural and first-class, and fits well within the hierarchy.<br>
&gt;&gt;<br>
&gt;&gt; Private itself isn&#39;t too bad a default, and this change would leave it so, while making `shared` act as an informative identifier for where file-scope (or submodule-scope) sharing takes place. This would also hint at when the access level should be used from a design standpoint - more so than `fileprivate` or `file`.<br>
&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt; swift-evolution mailing list<br>
&gt;&gt; <a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt;&gt; <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>
&gt;<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>
</div></div></blockquote></div><br></div></div>