<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br></div><div>On 14 Feb 2017, at 07:06, Chris Lattner via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><span></span><br><blockquote type="cite"><span>On Feb 12, 2017, at 12:35 PM, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com">xiaodi.wu@gmail.com</a>&gt; wrote:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>_Potentially_ meaningful, certainly. But what I'm hearing is that it isn't actually meaningful.</span><br></blockquote><span></span><br><span>Yes, for sure. &nbsp;That was carefully worded :-)</span><br><span></span><br><blockquote type="cite"><span>Here's why:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>If I see `fileprivate` and can understand that to mean "gee, the author _designed_ this member to be visible elsewhere inside the file," then it's actually meaningful. OTOH, if I see `fileprivate` and can only deduce "gee, the author mashed some button in his or her IDE," then it's not really telling me anything.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>What you've said above, as I understand it, is that it's not currently meaningful to see `fileprivate` because the migrator is writing it and not the author. The improved approach you proposed is the additional warning. In that case, the compiler will help to ensure that when I see `fileprivate`, at least I know it's necessary. But that's only telling me a fact (this member is accessed at least once outside the private scope), but it's still machine-based bookkeeping, not authorial intent.</span><br></blockquote><span></span><br><span>I see what you’re saying, but from a mechanical perspective, I disagree: seeing fileprivate in this (theoretical) world would be more meaningful than seeing private, because you know that there must be something in an extension that uses the member.</span><br><span></span><br><span>That said, whether it is meaningful or not is really not the question. &nbsp;Assuming you agree that it would carry “some” meaning, the question is really whether or not that meaning carries its own weight in terms of complexity in the language footprint. &nbsp;I tend to think “no”.</span><br><span></span><br><span>If you agree with “no", then Swift 4.x should eradicate fileprivate as a concept and that we should revert SE-0025 from Swift 4 mode. &nbsp;What to do with Swift 3.x still hangs in the balance of course.</span><br></div></blockquote><div><br></div><div>Wouldn't 3.x mode just warn of the future deprecation?</div><div><br></div><div><b>Xiaodi</b>: I'd be very tempted to write a proposal myself to revert SE-0025. But it's going to be unpopular and I don't feel like I have the same ease as you do to make the necessary points eloquently to convince as many people as possible. Do you have the time to write it? If not, I'd really appreciate some input from you: your points in this and the other thread have always matched mine but were much better expressed :)</div><br><blockquote type="cite"><div><span>-Chris </span><br><span></span><br><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></body></html>