<div dir="ltr">I am not an expert, but if we were to do anything along these lines at all, wouldn’t it make more sense to have something like @warn_on_call with which to annotate functions/methods that should never be called from client code but may need to be overridden? IDE’s could hide those items from autocomplete too.<div><br></div><div>Nevin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 12, 2016 at 11:16 PM, Michel Fortin 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><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Le 12 janv. 2016 à 22:52, <a href="mailto:cocoadev@charlessoft.com">cocoadev@charlessoft.com</a> a écrit :<br>
<br>
&gt; In any case, the most common use case, and the one that IMO makes the most sense, would be to define the overriding method as private(call) as well.<br>
<br>
</span>Ok then, that&#39;s the lie. (Not that you&#39;re lying, but the syntax you propose is a lie.)<br>
<br>
When I read `private(call)`, I read it &quot;private visibility for calling the method&quot;, just like `private(set)` means &quot;private visibility for the setter&quot;. A private visibility limits the usage to the current file. And the usage being limited to the current file is the ability to call the method.<br>
<br>
When you apply `private(call)` in the base class context, the method is callable only from the current file (thus the call ability is private). That&#39;s exactly what&#39;s needed. All is good.<br>
<br>
But when you apply `private(call)` at the override point, you want the method to not be callable from the current file. The syntax is saying the call ability is private (limited to the current file), but that&#39;s simply not true. What you really want to say here is `unavailable(call)`, but that does not exist.<br>
<span class="im HOEnZb"><br>
--<br>
Michel Fortin<br>
<a href="https://michelf.ca" rel="noreferrer" target="_blank">https://michelf.ca</a><br>
<br>
</span><div class="HOEnZb"><div class="h5">_______________________________________________<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/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div>