RFR: 8356022: Migrate descriptor parsing from generics to BytecodeDescriptor
Shaojin Wen
swen at openjdk.org
Fri May 2 05:19:52 UTC 2025
On Thu, 1 May 2025 00:01:08 GMT, Chen Liang <liach at 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 1563:
> 1561: List<Class<?>> types = BytecodeDescriptor.parseMethod(enclosingInfo.getDescriptor(), getClassLoader());
> 1562: types.removeLast();
> 1563: Class<?>[] parameterClasses = types.toArray(EMPTY_CLASS_ARRAY);
Suggestion:
var parameterClasses = types.toArray(EMPTY_CLASS_ARRAY);
Here the type of parameterClasses is very clear, or you can use var
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24978#discussion_r2071107230
More information about the core-libs-dev
mailing list