On Thu, 1 May 2025 00:01:08 GMT, Chen Liang <li...@openjdk.org> wrote:

> As another step toward the removal of the old generics infrastructure, I 
> propose to remove the usages of generic parsing utilities and use the 
> facilities provided by BytecodeDescriptor, already used by 
> MethodType.fromDescriptorString. This also prevents extra validation cost in 
> use sites to defend against generic types.
> 
> In this patch, BytecodeDescriptor and Wrapper see minor updates, mainly for 
> better exception messages - previously, an unparseable char in the descriptor 
> string just reports that char, and now the whole descriptor string is 
> reported.
> 
> These behaviors are already covered by the tests added in JDK-8350704 #23788.
> 
> Testing: reflect/annotation/Class, running tier 1+2

src/java.base/share/classes/java/lang/Class.java line 1565:

> 1563:             Class<?>[] parameterClasses = 
> types.toArray(EMPTY_CLASS_ARRAY);
> 1564: 
> 1565:             final Class<?> enclosingCandidate = 
> enclosingInfo.getEnclosingClass();

Suggestion:

            Constructor<?>[] candidates = enclosingInfo.getEnclosingClass()
                                                       
.privateGetDeclaredConstructors(false);

Here the local variable `enclosingInfo` is only used once, the above code may 
be simpler

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24978#discussion_r2071095785

Reply via email to