<div dir="ltr">On Fri, Mar 24, 2017 at 11:55 PM, Carl Brown1 <span dir="ltr">&lt;<a href="mailto:Carl.Brown1@ibm.com" target="_blank">Carl.Brown1@ibm.com</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"><div><p><font size="2">Maybe this is the core of this whole issue. In my experience, the very easiest part of the software development process is getting it to compile.  The *real effort* doesn&#39;t even start until after that&#39;s completed.  </font><br><br><font size="2">If I thought that &quot;case-sensitive find-and-relace&quot; was &quot;the tricky thing&quot; in developing software, and all I had to care about was avoiding &quot;invalid redeclarations anywhere&quot; then this proposal might seem like a good idea to me, too.</font></p></div></blockquote><div>My point is that, in rolling back the specific portion of SE-0025, case-sensitive find-and-replace will be the trickiest thing in most codebases, save those that result in invalid redeclarations. The behavior of the resultant code is, unless I&#39;m mistaken, provably unchanged. This in itself bolsters the case that the distinction between `fileprivate` and `private` did not really carry its own weight.</div><div><br></div><div>Indeed, if I thought that there would be an unknowable amount of effort required to migrate code, then I would be more hesitant about rolling back SE-0025. That said, I&#39;m curious as to how your argument would not apply to literally every single source-breaking change.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><p><br><font size="2">-Carl</font></p><ul></ul><img width="16" height="16" src="cid:1__=8FBB0A7DDF8A59C48f9e8a93df938690918c8FB@" border="0" alt="Inactive hide details for Xiaodi Wu via swift-evolution ---03/24/2017 11:10:54 PM---On Fri, Mar 24, 2017 at 10:47 PM, Xiaodi Wu"><font size="2" color="#424282">Xiaodi Wu via swift-evolution ---03/24/2017 11:10:54 PM---On Fri, Mar 24, 2017 at 10:47 PM, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote: &gt; As Chris has said in the</font><span><br><br><font size="2" color="#5F5F5F">From:        </font><font size="2">Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</font><br><font size="2" color="#5F5F5F">To:        </font><font size="2">Drew Crawford &lt;<a href="mailto:drew@sealedabstract.com" target="_blank">drew@sealedabstract.com</a>&gt;, Jonathan Hull &lt;<a href="mailto:jhull@gbis.com" target="_blank">jhull@gbis.com</a>&gt;</font><br><font size="2" color="#5F5F5F">Cc:        </font><font size="2">swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</font><br></span><font size="2" color="#5F5F5F">Date:        </font><font size="2">03/24/2017 11:10 PM</font><span><br><font size="2" color="#5F5F5F">Subject:        </font><font size="2">Re: [swift-evolution] [Review] SE-0159: Fix Private Access Levels</font><br><font size="2" color="#5F5F5F">Sent by:        </font><font size="2"><a href="mailto:swift-evolution-bounces@swift.org" target="_blank">swift-evolution-bounces@swift.<wbr>org</a></font><br><hr width="100%" size="2" align="left" noshade style="color:#8091a5"><br><br></span><span>On Fri, Mar 24, 2017 at 10:47 PM, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank"><u><font color="#0000FF">xiaodi.wu@gmail.com</font></u></a>&gt; wrote:<br><br></span><span>Update: with the caveat that corelibs-foundation tests are incomplete, it took me about 15 mins to migrate all uses of private to fileprivate. The tricky thing is that one has to do case-sensitive find-and-replace, and to replace all instances of &quot;filefileprivate&quot; in a second round. It does not appear that corelibs-foundation actually uses new `private` in a way that migrating to `fileprivate` results in invalid redeclarations anywhere.<tt><font size="2"><br></font></tt><br><br><br>
</span><p></p></div>
</blockquote></div><br></div></div>