<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <br>
    <div class="moz-cite-prefix">On 1/8/2019 11:20 AM, <a class="moz-txt-link-abbreviated" href="mailto:forax@univ-mlv.fr">forax@univ-mlv.fr</a>
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:340341882.521306.1546964406712.JavaMail.zimbra@u-pem.fr">
      <blockquote type="cite" style="color: #000000;">
        <pre class="moz-quote-pre" wrap="">Right.  And I'm saying, we can't sell that.  Values should work like an
int; you can compare ints with ==.   I think the "Currently" story
doesn't wash.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">You can not use the "work like an int" argument here, a value type can contain references, so it doesn't work like an int.</pre>
    </blockquote>
    <br>
    Sorry, I don't buy it.  <br>
    <br>
    One of the primary use cases for value types is numerics.  Are we
    seriously telling people that they can't compare non-intrinsnic
    numerics with `==`?  I realize that from a VM perspective, the
    "values have no ==" seems sound, but for the 99.9999% of Java
    developers that are not VM engineers, I don't think a single one of
    them will buy it.  <br>
    <br>
    <blockquote type="cite"
      cite="mid:340341882.521306.1546964406712.JavaMail.zimbra@u-pem.fr">
      <pre class="moz-quote-pre" wrap="">John proposed to stop the recursivity at some point, but it will be very surprising too !</pre>
    </blockquote>
    <br>
    No, in corner cases like this (and surely this is at least a corner
    of a corner), we eat the recursion.  That's the sensible equality
    semantics for embedding a linked lists in a value.  <br>
    <br>
    <blockquote type="cite"
      cite="mid:340341882.521306.1546964406712.JavaMail.zimbra@u-pem.fr">
      <pre class="moz-quote-pre" wrap="">So for now, i think the only possible semantics is to consider that '==' means an address comparison for all kind of classes (reference or value class), so a value class acts like a class for == and given that a value has no address, it should return false.
</pre>
    </blockquote>
    <br>
    That's certainly not the only solution.  Nor do I think its a
    remotely good one for Java developers.  <br>
    <br>
    <br>
  </body>
</html>