<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <font size="4"><font face="monospace">Makes sense.  Would be good to
        rough this out to see the impact on the codebase?<br>
        <br>
        <br>
      </font></font><br>
    <div class="moz-cite-prefix">On 11/3/2023 9:23 PM, - wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CABe8uE0BtX6nvUwBWZaq52_2hhiDZFR79X75Mc7ZYdEKz7UmXg@mail.gmail.com">
      
      <div dir="ltr">Hello,<br>
        <div>I am currently looking into reimplementing core
          reflection's signature parsing to be based off the new
          Class-file API.</div>
        <div><br>
        </div>
        <div>One thing I noticed when using Signature.TypeArg is that it
          is a perfect candidate for algebraic data type, like:</div>
        <div>TypeArg</div>
        <div>  - Unbounded: a singleton ENUM</div>
        <div>  - Bounded: has 2 fields: 3-way wildcard indicator (+-and
          none), a RefTypeSig</div>
        <div><br>
        </div>
        <div>Alternatively, Bounded can be split into 3 classes that
          each hold a RefTypeSig instead of using the 3-way indicator,
          for the ref type sig is not really interchangeable. </div>
        <div><br>
        </div>
        <div>This model's main advantage is that users can be assured
          that they can just obtain RefTypeSig if the TypeArg is
          bounded, without having to write dubious
          Optional.get()/orElseThrow() in user code.</div>
        <div><br>
        </div>
        <div>Best,</div>
        <div>Chen Liang</div>
      </div>
    </blockquote>
    <br>
  </body>
</html>