<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>