<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif">I doubt if you could have done that in swift-evolution list. As for an evolution, it requests that you not only provides the question, but also must provide the answer and how to implementing in code together. </div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">Zhaoxin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 23, 2017 at 6:04 PM, Wagner Truppel via swift-users <span dir="ltr">&lt;<a href="mailto:swift-users@swift.org" target="_blank">swift-users@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">Right, so several people have agreed with me that a compiler warning is in order. My question now is: what’s the best way to get this request to the people who can make it happen? swift-dev list? swift-evolution list? Apple radar? Suggestions are welcome.<br>
<br>
Thanks.<br>
<span class="HOEnZb"><font color="#888888">Wagner<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
&gt; On 9 Jan 2017, at 09:49, David Hart &lt;<a href="mailto:david@hartbit.com">david@hartbit.com</a>&gt; wrote:<br>
&gt;<br>
&gt; I think we need a warning because it is definitely ambiguous and a common pitfall for users of an API. The only solution would be for the APIs be written so to avoid those ambiguities I think.<br>
&gt;<br>
&gt;&gt; On 5 Jan 2017, at 08:58, Rien via swift-users &lt;<a href="mailto:swift-users@swift.org">swift-users@swift.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; As you know. there is no ambiguity, no warnings needed.<br>
&gt;&gt; (The parameter is part of the identifier of the function)<br>
&gt;&gt;<br>
&gt;&gt; Imo, this request falls into the category “do as I think, not as I say”.<br>
&gt;&gt;<br>
&gt;&gt; That is a discussion without end. Personally I am against ANY warnings of this kind. The reason is that I want my code to compile warnings free (default compiler behaviour) and I do not want an extra pragma in the code to instruct the compiler that when I am calling “foo()” I do indeed want to call “foo()”.<br>
&gt;&gt;<br>
&gt;&gt; Regards,<br>
&gt;&gt; Rien<br>
&gt;&gt;<br>
&gt;&gt; Site: <a href="http://balancingrock.nl" rel="noreferrer" target="_blank">http://balancingrock.nl</a><br>
&gt;&gt; Blog: <a href="http://swiftrien.blogspot.com" rel="noreferrer" target="_blank">http://swiftrien.blogspot.com</a><br>
&gt;&gt; Github: <a href="http://github.com/Swiftrien" rel="noreferrer" target="_blank">http://github.com/Swiftrien</a><br>
&gt;&gt; Project: <a href="http://swiftfire.nl" rel="noreferrer" target="_blank">http://swiftfire.nl</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; On 05 Jan 2017, at 03:29, Wagner Truppel via swift-users &lt;<a href="mailto:swift-users@swift.org">swift-users@swift.org</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hello,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I wasn’t sure whether to post this message here, at swift-dev, or at swift-evolution. so I’ll try here first. Hopefully it will get to the right group of people or, if not, someone will point me to the right mailing list.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I came across a situation that boils down to this example:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; class Parent {<br>
&gt;&gt;&gt;  func foo() {<br>
&gt;&gt;&gt;      print(&quot;Parent foo() called&quot;)<br>
&gt;&gt;&gt;  }<br>
&gt;&gt;&gt; }<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; class Child: Parent {<br>
&gt;&gt;&gt;  func foo(x: Int = 0) {<br>
&gt;&gt;&gt;      print(&quot;Child foo() called&quot;)<br>
&gt;&gt;&gt;  }<br>
&gt;&gt;&gt; }<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; let c = Child()<br>
&gt;&gt;&gt; c.foo()  // prints &quot;Parent foo() called&quot;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I understand why this behaves like so, namely, the subclass has a method foo(x:) but no direct implementation of foo() so the parent’s implementation is invoked rather than the child&#39;s. That’s all fine except that it is not very intuitive.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I would argue that the expectation is that the search for an implementation should start with the subclass (which is does) but should look at all possible restrictions of parent implementations, including the restriction due to default values.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; At the very least, I think the compiler should emit a warning or possibly even an error.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks for reading.<br>
&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Wagner<br>
&gt;&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt;&gt; swift-users mailing list<br>
&gt;&gt;&gt; <a href="mailto:swift-users@swift.org">swift-users@swift.org</a><br>
&gt;&gt;&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-users</a><br>
&gt;&gt;<br>
&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt; swift-users mailing list<br>
&gt;&gt; <a href="mailto:swift-users@swift.org">swift-users@swift.org</a><br>
&gt;&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-users</a><br>
&gt;<br>
<br>
______________________________<wbr>_________________<br>
swift-users mailing list<br>
<a href="mailto:swift-users@swift.org">swift-users@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-users</a><br>
</div></div></blockquote></div><br></div>