<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <font size="4"><font face="monospace">(1) and (2) make total sense;
        (3) seems a little much, since it is just defaulting in a single
        argument?<br>
        <br>
      </font></font><br>
    <div class="moz-cite-prefix">On 3/13/2023 1:49 PM, - wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CABe8uE2UOb4wX7X04krpG-t5AGEacaufXFuikPMoxHxN943_Bg@mail.gmail.com">
      <pre class="moz-quote-pre" wrap="">Hi,
After migrating 26/30 classes in test/jdk/java to Classfile API
(<a class="moz-txt-link-freetext" href="https://github.com/liachmodded/jdk/commit/65ca55bc2e838823471de40f0e16f9770d932117">https://github.com/liachmodded/jdk/commit/65ca55bc2e838823471de40f0e16f9770d932117</a>),
I suggest to add these new APIs to constant API for ease of Classfile
API usage:

1. In ConstantDescs:
  public static final String CONSTRUCTOR_NAME = "<init>";
  public static final String CLASS_INITIALIZER_NAME = "<clinit>";
  public static final MethodTypeDesc MTD_void = MethodTypeDesc.of(CD_void);

Since every instance class always has a constructor, and most likely,
its constructor has to call Object's no-arg constructor. The same
method type descriptor is shared for the static initializer too.

2. In ConstantDescs:
  public static final DirectMethodHandleDesc BSM_CLASS_DATA = ...
  public static final DirectMethodHandleDesc BSM_CLASS_DATA_AT = ...

Representing MethodHandles.classData and MethodHandles.classDataAt,
used by hidden classes frequently.

3. In DynamicConstantDesc:
  public static DynamicConstantDesc ofTyped(DirectMethodHandleDesc
bootstrapMethod, ClassDesc constantType, ConstantDesc...
bootstrapArgs)

This is equivalent to calling ofNamed with ConstantDescs.DEFAULT_NAME,
useful for classData and classDataAt bootstrap methods.
</pre>
    </blockquote>
    <br>
  </body>
</html>