<div dir="ltr">On Fri, Mar 24, 2017 at 11:55 PM, Carl Brown1 <span dir="ltr"><<a href="mailto:Carl.Brown1@ibm.com" target="_blank">Carl.Brown1@ibm.com</a>></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't even start until after that's completed. </font><br><br><font size="2">If I thought that "case-sensitive find-and-relace" was "the tricky thing" in developing software, and all I had to care about was avoiding "invalid redeclarations anywhere" 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'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'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 <<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>> wrote: > 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 <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></font><br><font size="2" color="#5F5F5F">To: </font><font size="2">Drew Crawford <<a href="mailto:drew@sealedabstract.com" target="_blank">drew@sealedabstract.com</a>>, Jonathan Hull <<a href="mailto:jhull@gbis.com" target="_blank">jhull@gbis.com</a>></font><br><font size="2" color="#5F5F5F">Cc: </font><font size="2">swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></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 <<a href="mailto:xiaodi.wu@gmail.com" target="_blank"><u><font color="#0000FF">xiaodi.wu@gmail.com</font></u></a>> 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 "filefileprivate" 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>