I think this is where some special behavior in the migrator is called for. Where an overload ambiguity appears, it will need to insert an &quot;as T&quot; to disambiguate.<br><br>Carl&#39;s standard can be strictly met by a migrator that compares all uses of private facilities under the new and old meaning of private, ensuring that no uses emerge or disappear after rollback.<br><div class="gmail_quote"><div dir="ltr">On Sun, Mar 26, 2017 at 03:23 Jaden Geller via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class="gmail_msg"><div class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg">On Mar 25, 2017, at 10:54 PM, John McCall via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br class="gmail_msg"><br class="gmail_msg"></div><blockquote type="cite" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><blockquote type="cite" class="gmail_msg"><div class="gmail_msg">On Mar 25, 2017, at 2:11 AM, Carl Brown1 via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><div class="gmail_msg"><div class="gmail_msg"><p class="gmail_msg"><font size="2" class="gmail_msg">Yes, it would change my opinion of it.  I wouldn&#39;t become a strong supporter because I don&#39;t see any value in it, but a rigorous proof that this proposal could not possibly introduce regressions to any existing codebases would change my opinion from &quot;strongly against&quot; to &quot;doesn&#39;t matter to me, I&#39;ll stop arguing against it and go get my real work done&quot;.</font><br class="gmail_msg"></p></div></div></blockquote><div class="gmail_msg">Speaking just for myself, this was a key part of why I was attracted to this proposal: it seemed to me to be extremely unlikely to cause regressions in behavior.  Even without any special behavior in the migrator, code will mostly work exactly as before: things that would have been invalid before will become valid, but not the other way around.</div></div></div></blockquote><div class="gmail_msg"><br class="gmail_msg"></div></div><div dir="auto" class="gmail_msg"><div class="gmail_msg">What about overloads that become ambiguous? I admit this is a fringe case.</div></div><div dir="auto" class="gmail_msg"><br class="gmail_msg"><blockquote type="cite" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">The exception is that old-private declarations from scopes in the same file can now be found by lookups in different scopes (but still only within the same file).  It should be quite straightforward for the migrator to detect when this has happened and report it as something for the programmer to look at.  The proposal causes a small regression in functionality, in that there&#39;s no longer any way to protect scopes from accesses within the file, but (1) it&#39;s okay for Swift to be opinionated about file size and (2) it seems to me that a workable sub-module proposal should solve that more elegantly while simultaneously addressing the concerns of the people who dislike acknowledging the existence of files.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">John.</div><blockquote type="cite" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><p class="gmail_msg"><font size="2" class="gmail_msg">-Carl</font><br class="gmail_msg"><br class="gmail_msg"><span id="m_-1695634269978250646cid:1__=8FBB0A7DDFB206B68f9e8a93df938690918c8FB@" class="gmail_msg">&lt;graycol.gif&gt;</span><font size="2" color="#424282" class="gmail_msg">Xiaodi Wu ---03/25/2017 12:33:55 AM---Would it change your opinion on the proposal? On Sat, Mar 25, 2017 at 12:10 AM, Carl Brown1 &lt;Carl.Br</font><br class="gmail_msg"><br class="gmail_msg"><font size="2" color="#5F5F5F" class="gmail_msg">From:        </font><font size="2" class="gmail_msg">Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" class="gmail_msg" target="_blank">xiaodi.wu@gmail.com</a>&gt;</font><br class="gmail_msg"><font size="2" color="#5F5F5F" class="gmail_msg">To:        </font><font size="2" class="gmail_msg">Carl Brown1/US/IBM@IBM</font><br class="gmail_msg"><font size="2" color="#5F5F5F" class="gmail_msg">Cc:        </font><font size="2" class="gmail_msg">Drew Crawford &lt;<a href="mailto:drew@sealedabstract.com" class="gmail_msg" target="_blank">drew@sealedabstract.com</a>&gt;, Jonathan Hull &lt;<a href="mailto:jhull@gbis.com" class="gmail_msg" target="_blank">jhull@gbis.com</a>&gt;, swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt;</font><br class="gmail_msg"><font size="2" color="#5F5F5F" class="gmail_msg">Date:        </font><font size="2" class="gmail_msg">03/25/2017 12:33 AM</font><br class="gmail_msg"><font size="2" color="#5F5F5F" class="gmail_msg">Subject:        </font><font size="2" class="gmail_msg">Re: [swift-evolution] [Review] SE-0159: Fix Private Access Levels</font><br class="gmail_msg"></p><hr width="100%" size="2" align="left" noshade style="color:#8091a5" class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg">Would it change your opinion on the proposal?<br class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg">On Sat, Mar 25, 2017 at 12:10 AM, Carl Brown1 &lt;<a href="mailto:Carl.Brown1@ibm.com" class="gmail_msg" target="_blank"><u class="gmail_msg"><font color="#0000FF" class="gmail_msg">Carl.Brown1@ibm.com</font></u></a>&gt; wrote:
<ul class="gmail_msg"><font size="2" class="gmail_msg">I would very much like to see your proof that the resultant code is unchanged in an arbitrary codebase. </font><br class="gmail_msg"><font size="2" class="gmail_msg"><br class="gmail_msg">-Carl</font><br class="gmail_msg"><br class="gmail_msg"><span id="m_-1695634269978250646cid:1__=8FBB0A7DDFB206B68f9e8a93df938690918c8FB@" class="gmail_msg">&lt;graycol.gif&gt;</span><font size="2" color="#424282" class="gmail_msg">Xiaodi Wu ---03/25/2017 12:01:26 AM---On Fri, Mar 24, 2017 at 11:55 PM, Carl Brown1 &lt;</font><a href="mailto:Carl.Brown1@ibm.com" class="gmail_msg" target="_blank"><u class="gmail_msg"><font size="2" color="#0000FF" class="gmail_msg">Carl.Brown1@ibm.com</font></u></a><font size="2" color="#424282" class="gmail_msg">&gt; wrote: &gt; Maybe this is the core</font><br class="gmail_msg"><font size="2" color="#5F5F5F" class="gmail_msg"><br class="gmail_msg">From: </font><font size="2" class="gmail_msg">Xiaodi Wu &lt;</font><a href="mailto:xiaodi.wu@gmail.com" class="gmail_msg" target="_blank"><u class="gmail_msg"><font size="2" color="#0000FF" class="gmail_msg">xiaodi.wu@gmail.com</font></u></a><font size="2" class="gmail_msg">&gt;</font><font size="2" color="#5F5F5F" class="gmail_msg"><br class="gmail_msg">To: </font><font size="2" class="gmail_msg">Carl Brown1/US/IBM@IBM</font><font size="2" color="#5F5F5F" class="gmail_msg"><br class="gmail_msg">Cc: </font><font size="2" class="gmail_msg">Drew Crawford &lt;</font><a href="mailto:drew@sealedabstract.com" class="gmail_msg" target="_blank"><u class="gmail_msg"><font size="2" color="#0000FF" class="gmail_msg">drew@sealedabstract.com</font></u></a><font size="2" class="gmail_msg">&gt;, Jonathan Hull &lt;</font><a href="mailto:jhull@gbis.com" class="gmail_msg" target="_blank"><u class="gmail_msg"><font size="2" color="#0000FF" class="gmail_msg">jhull@gbis.com</font></u></a><font size="2" class="gmail_msg">&gt;, swift-evolution &lt;</font><a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank"><u class="gmail_msg"><font size="2" color="#0000FF" class="gmail_msg">swift-evolution@swift.org</font></u></a><font size="2" class="gmail_msg">&gt;</font><font size="2" color="#5F5F5F" class="gmail_msg"><br class="gmail_msg">Date: </font><font size="2" class="gmail_msg">03/25/2017 12:01 AM</font><font size="2" color="#5F5F5F" class="gmail_msg"><br class="gmail_msg">Subject: </font><font size="2" class="gmail_msg">Re: [swift-evolution] [Review] SE-0159: Fix Private Access Levels</font><br class="gmail_msg"><hr width="100%" size="2" align="left" noshade class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg">On Fri, Mar 24, 2017 at 11:55 PM, Carl Brown1 &lt;<a href="mailto:Carl.Brown1@ibm.com" class="gmail_msg" target="_blank"><u class="gmail_msg"><font color="#0000FF" class="gmail_msg">Carl.Brown1@ibm.com</font></u></a>&gt; wrote: 
<p class="gmail_msg">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. 
</p><div class="gmail_msg"><br class="m_-1695634269978250646webkit-block-placeholder gmail_msg"></div></ul><br class="gmail_msg"><div class="gmail_msg"><br class="m_-1695634269978250646webkit-block-placeholder gmail_msg"></div><p class="gmail_msg"><br class="gmail_msg">
</p></div>
_______________________________________________<br class="gmail_msg">swift-evolution mailing list<br class="gmail_msg"><a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail_msg"><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="gmail_msg"></div></blockquote></div><br class="gmail_msg"></div></blockquote><blockquote type="cite" class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg">_______________________________________________</span><br class="gmail_msg"><span class="gmail_msg">swift-evolution mailing list</span><br class="gmail_msg"><span class="gmail_msg"><a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a></span><br class="gmail_msg"><span class="gmail_msg"><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br class="gmail_msg"></div></blockquote></div>_______________________________________________<br class="gmail_msg">
swift-evolution mailing list<br class="gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="gmail_msg">
</blockquote></div>