On Tue, 26 Jul 2022 19:57:38 GMT, ExE Boss <d...@openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/constant/ClassDesc.java line 85:
>> 
>>> 83:      * given the name of the class or interface in internal form,
>>> 84:      * such as {@code "java/lang/String"}.
>>> 85:      * (To create a descriptor for an array type, either use {@link 
>>> #ofDescriptor(String)}
>> 
>> It feels like this section could be expanded a bit (and parenthesis 
>> removed). E.g. as you point out in the comment, this method only supports 
>> reference types, so we should state so clearly. And then present 
>> alternatives (like you do now).
>
> Isn’t the internal name of an array type its descriptor though?
> 
> So, I feel like this method should allow array descriptors.

First may I ask which parenthesis should be removed?

Mentioning "reference" is misleading when talking about Class internal name 
(JVMS 4.2.1 "Binary Class and Interface Names"). Word "reference" is mentioned 
in (JVMS 4.3.2. "Field Descriptors", Table 4.3-A. "Interpretation of field 
descriptors") and it also includes array types descriptors, so it might be 
rather mentioned in ClassDesc::ofDescriptor method doc.

This is also answer to the second comment - field descriptor of array type 
isn't an internal name according to my understanding of JVMS.
This method suppose to construct ClassDesc from class or interface internal 
name according to JVMS 4.2.1.
Construction of ClassDesc from field descriptor according to JVMS 4.3.2 is 
ClassDesc::ofDescriptor method responsibility.

-------------

PR: https://git.openjdk.org/jdk/pull/9201

Reply via email to