<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="+1"><tt>So, its always good to walk back from the
        "solution" and try to distill the problem you are trying to
        solve.  <br>
        <br>
        One thing I think you are saying is: Let's be careful that we
        don't just blindly extrapolate from "A switch is a bunch of
        things, all of which start with 'case'".  This is of course true
        now, but we should be aware that there is more than one way to
        consistently extrapolate from the present.  <br>
        <br>
        Another thing that I think you're saying is: Currently all our
        patterns are constants, and they are denoted like constant
        literals, but beware, when you start to mix literal-looking
        thingies to more complex patterns, it may get ambiguous.  (Or is
        that what I'm saying?)<br>
        <br>
        <br>
      </tt></font><br>
    <div class="moz-cite-prefix">On 6/6/2020 10:19 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:1515317113.1251058.1591453158393.JavaMail.zimbra@u-pem.fr">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div style="font-family: arial, helvetica, sans-serif; font-size:
        12pt; color: #000000">
        <div>Let's try again with a different camera angle.<br>
        </div>
        <div><br data-mce-bogus="1">
        </div>
        <div>If i want to write the equals of a record Point, using
          instanceof, I can write<br data-mce-bogus="1">
        </div>
        <div>record Point(int x, int y) {<br data-mce-bogus="1">
        </div>
        <div>  public boolean equals(Object o) {<br>
              return o instanceof Point(x, y);<br>
            }<br data-mce-bogus="1">
        </div>
        <div>}<br data-mce-bogus="1">
        </div>
      </div>
    </blockquote>
    <br>
    Alarm, alarm!  No one has proposed that you should be allowed to use
    a (mutable!) variable as a nested pattern in this way!  But if you
    want to ask this question, you could write:<br>
    <br>
        o instanceof Point(var xx, var yy) && xx == x &&
    yy == y;<br>
    <br>
    Now, maybe you want to say "yuck, I don't want to write that." 
    Maybe you'd be happy if you could say:<br>
    <br>
        o instanceof Point(== x, == y)<br>
    <br>
    where `== expr` is a pattern that matches its target if, well, the
    target is equal to the expression?  <br>
    <br>
    <blockquote type="cite"
      cite="mid:1515317113.1251058.1591453158393.JavaMail.zimbra@u-pem.fr">
      <div style="font-family: arial, helvetica, sans-serif; font-size:
        12pt; color: #000000">
        <div>I don't have the solution, maybe this problem is just
          because we are introducing new patterns but in 10 years,
          people will be used too.<br>
        </div>
      </div>
    </blockquote>
    <br>
    Sure, let's step back: what's the problem you are worried about?<br>
  </body>
</html>