<div dir="ltr"><div>The initial proposal mentions static members, because I thought it was only a matter of moving things from one place to other and because I saw something like this in C#.</div><div><br></div><div>After reading your messages, however, I have to agree that the second approach, using instances members, is a much better one. </div><div><br></div><div>About the name lookup algorithm and shadow/override things, I’m afraid I do not know what to say. What options do we have?</div><div><br></div><div><br></div><div>Regards,</div><div><br></div><div>-Van</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 1, 2016 at 6:41 PM, Chris Lattner <span dir="ltr">&lt;<a href="mailto:clattner@apple.com" target="_blank">clattner@apple.com</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=""><br>
&gt; On Feb 1, 2016, at 1:47 AM, Haravikk &lt;<a href="mailto:swift-evolution@haravikk.me">swift-evolution@haravikk.me</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;&gt; On 1 Feb 2016, at 04:55, Chris Lattner &lt;<a href="mailto:clattner@apple.com">clattner@apple.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; We need multiple modules to be able to define instances of an operator, we need operators in extensions, and we need retroactive conformance to work, as with any other member.<br>
&gt;<br>
&gt; Why?<br>
<br>
</span>I’m not sure which piece you’re asking about.  I’m just saying that name lookup needs to follow an algorithm, and that algorithm needs to be specified.<br>
<span class=""><br>
&gt; Like I say, the operator itself is really static, not a method of an instance, as it declares what it operates on in its parameters, just as an operator does now, the only difference is being able to declare it in class/struct for clarity. There’s also no talk of making explicit operator declarations such as Foo.==(a, b),<br>
<br>
</span>I agree.<br>
<span class=""><br>
&gt; so it seems to me that nothing will actually change functionally from the way operators are now.<br>
<br>
</span>You need to specify the lookup order, and how to determine whether something is a shadow or redefinitions.  The compiler needs to have an algorithm to decide this, and this is an important part of the behavior of the feature.  As such a proposal should specify how it works.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Chris</font></span></blockquote></div><br></div>