On Fri, 26 Apr 2024 21:15:20 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:
> 
>   special case the new code for records only

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

> 352:                      */
> 353:                     int fromidx = genericParamTypes.length - 1;
> 354:                     for (int i = out.length - 1; i >= 0; i--) {

We don't really need this loop any more; can just do something like:

if (genericParamTypes.length == nonGenericParamTypes.length) {
    out = genericParamTypes;
} else {
    out = nonGenericParamTypes.clone();
}

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

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

Reply via email to