On Fri, 26 Apr 2024 23:54:17 GMT, Vicente Romero <vrom...@openjdk.org> wrote:

>> Reflection is not retrieving generic type information for mandated 
>> parameters. This is a known issue which has been explicitly stated in the 
>> API of some reflection methods. Fix for 
>> [JDK-8292275](https://bugs.openjdk.org/browse/JDK-8292275) made the 
>> parameters of compact constructors of record classes `mandated` as specified 
>> in the spec. But this implied that users that previous to this change could 
>> retrieve the generic type of parameters of compact constructors now they 
>> can't anymore. The proposed fix is to try to retrieve generic type 
>> information for mandated parameters if available plus changing the spec of 
>> the related reflection methods.
>> 
>> TIA
>
> Vicente Romero has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   code refactoring

src/java.base/share/classes/java/lang/reflect/Executable.java line 348:

> 346:                 final Type[] out = new Type[nonGenericParamTypes.length];
> 347:                 final Parameter[] params = getParameters();
> 348:                 if (getDeclaringClass().isRecord() && this instanceof 
> Constructor) {

Sorry for late notice but we can move the 2 variable allocation to the else 
block, to speed up the record constructor path.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17070#discussion_r1581636171

Reply via email to