<div dir="ltr">On Fri, Feb 24, 2017 at 3:32 AM, Joanna Carter 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:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="gmail-"><br>
&gt; Le 23 févr. 2017 à 20:48, Matthew Johnson &lt;<a href="mailto:matthew@anandabits.com">matthew@anandabits.com</a>&gt; a écrit :<br>
&gt;<br>
&gt; Sometimes APIs are used internally in production while eventually planned for public visibility.  New features in Apple’s frameworks often start life this way.<br>
<br>
</span>Hmmm. In my experience, if I wanted to experiment with something in the context of the whole project, I would tend to create a branch of the project in source control, experiment and either merge the branch if successful or delete it if not.<br>
<span class="gmail-"><br>
&gt; I don’t have a strong feeling about this particular capability.  I’m just trying to state the rationale as I understand it.<br>
<br>
</span>Pease don&#39;t think I am criticising your understanding, it&#39;s just that such a rationale doesn&#39;t seem very, well, rational :-)</blockquote><div><br></div><div>It is a useful generalization of an absolutely obligatory feature for new `private`. Consider the following:</div><div><br></div><div>```</div><div>private class Foo {</div><div>  private class Bar {</div><div>    /* blank */ class Baz { }</div><div>  }</div><div>}</div><div>```</div><div><br></div><div>What access modifier can be used in place of `blank` to make `Foo.Bar.Baz` have the same visibility as `Foo.Bar`? Note that `private` inside the type is more restrictive than `private` in the declaration of the type; the precise visibility of `Foo.Bar` is not expressible inside `Foo.Bar` itself. To allow `Foo.Bar.Baz` to be visible everywhere that `Foo.Bar` is visible, we must allow `blank` to be replaced by a modifier other than `private`.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div class="gmail-HOEnZb"><div class="gmail-h5">
--<br>
Joanna Carter<br>
Carter Consulting<br>
<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>