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